免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9610 | 回复: 15

sqlserver 日志传送 实战 [复制链接]

论坛徽章:
0
发表于 2011-02-25 19:11 |显示全部楼层
现在 问题
下面的方法是不过这个方法就是这一次的日志备份会覆盖上一次的日志备份文件,而我想做到的效果是A服务器上还是保存按时间排列的日志,只是传送到B服务器的时候能够让B随时还原并保持和A服务器一致呀.??
(主库有 充分的日志, 我 在思考能否不在主库上 作 backup log。 而直接用那些 日志??)

/*--说明:
    下面的代码演示了如何利用日志还原功能,将主数据库中的数据变化及时反馈到备用数据库中
    备用数据库的数据可以随时用于查询,但不能被更新(备用数据库只读)。
--*/

--首先,创建一个演示用的数据库(主数据库)
CREATE DATABASE Db_test
ON
( NAME = Db_test_DATA,
      FILENAME = 'c:\Db_test.mdf' )
LOG ON
( NAME = Db_test_LOG,
   FILENAME = 'c:\Db_test.ldf')
GO

--对数据库进行备份
BACKUP DATABASE Db_test TO DISK='c:\test_data.bak' WITH FORMAT
GO

--把数据库还原成备用数据库(演示主数据库与这个备用数据库之间的同步)
RESTORE DATABASE Db_test_bak FROM DISK='c:\test_data.bak'
WITH REPLACE,STANDBY='c:\db_test_bak.ldf'
    ,MOVE 'Db_test_DATA' TO 'c:\Db_test_data.mdf'
    ,MOVE 'Db_test_LOG' TO 'c:\Db_test_log.ldf'
GO

--启动 SQL Agent 服务
EXEC master..xp_cmdshell 'net start sqlserveragent',no_output
GO

--创建主服务器数据训与备用服务器数据库之间同步的作业
DECLARE  @jogid uniqueidentifier
EXEC msdb..sp_add_job
    @job_id = @jogid OUTPUT,
    @job_name = N'数据同步处理'

--创建同步处理步骤
EXEC msdb..sp_add_jobstep
    @job_id = @jogid,
    @step_name = N'数据同步',
    @subsystem = 'TSQL',
    @command = N'
--主数据库中进行日志备份
BACKUP LOG Db_test TO DISK=''c:\test_log.bak'' WITH FORMAT

--备用数据库中还原主数据库的日志备份(应用主数据库中的最新变化
--实际应该时主数据库备份与备用数据库的还原作业应该分别在主服务器和备用服务器上建立,并且备份文件应该放在主服务器和备用都能访问的共享目录中
RESTORE LOG Db_test_bak FROM DISK=''c:\test_log.bak'' WITH STANDBY=''c:\test_log.ldf''',
    @retry_attempts = 5,
    @retry_interval = 5

--创建调度(每分钟执行一次)
EXEC msdb..sp_add_jobschedule
    @job_id = @jogid,
    @name = N'时间安排',
    @freq_type=4,
    @freq_interval=1,
    @freq_subday_type=0x4,
    @freq_subday_interval=1,
    @freq_recurrence_factor=1

-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
    @job_id = @jogid,
    @server_name = N'(local)'
GO

--通过上述处理,主数据库与备用数据库之间的同步关系已经设置完成
--下面开始测试是否能实现同步

--在主数据库中创建一个测试用的表
CREATE TABLE Db_test.dbo.TB_test(ID int)
GO

--等待1分钟30秒(由于同步的时间间隔设置为1分钟,所以要延时才能看到效果)
WAITFOR DELAY '00:01:30'
GO

--查询一下备用数据库,看看同步是否成功
SELECT * FROM Db_test_bak.dbo.TB_test

/*--结果:
ID         
-----------

(所影响的行数为 0 行)
--*/

--测试成功
GO

--最后删除所有的测试
DROP DATABASE Db_test,Db_test_bak
EXEC msdb..sp_delete_job @job_name=N'数据同步处理'
GO


/*===========================================================*/

/*--服务器档机处理说明
    使用这种方式建立的数据库同步,当主数据库不可用时(例如,主数据库损坏或者停机检修)
    可以使用以下两种方法使备用数据库可用。
--*/

--1. 如果主数据库损坏,无法备份出最新的日志,可以直接使用下面的语句使备用数据库可读写(丢失最近一次日志还原后的所有数据)。
RESTORE LOG Db_test_bak WITH RECOVERY


--2. 如果主数据库可以备份出最新日志,则可以使用下面的语句。
--先备份主数据库的最新的事务日志
BACKUP LOG Db_test TO DISK=''c:\test_log.bak'' WITH FORMAT
--再在备用数据库中恢复最新的事务日志,并且使备用数据库可读写(升级为主数据库)
RESTORE LOG Db_test_bak FROM DISK='c:\test_log.bak'

论坛徽章:
0
发表于 2011-02-25 19:22 |显示全部楼层
因工作需要,公司数据库需采用日志传送+镜像的方式,此配置方法不需要域,不需要证书验证,唯一需要的就是两台服务器账号名和密码相同就Ok,以下为测试步骤:

1.主机和备机上,检查SQLServer版本号,确认版本号一致;

2.在主机上确认需要镜像的数据库恢复模式为完整模式(因为之前数据库已经做了日志传送,所以这一步省了);

3.检查主机和备机的SQLServer服务和Agent服务启动账户是否相同.如果两台服务器不在域里面,服务启动账户请使用”.\username”格式(这一步很关键,因为测试服务器不在域里,这个地方卡了N久);

4.先在主机上把日志传送的日志备份作业禁用;

5. 在主机上对数据库做一个完整备份和一个日志备份;
BACKUPDATABASEtest_mirTODISK='D:\test_mir.bak'
BACKUPLOGtest_mirTODISK='D:\test_mir.trn'

6.将备份文件拷贝至备机,用完整备份和日志备份进行还原;
RESTORE DATABASE test_mir FROM DISK='D:\test_mir.bak' WITH NORECOVERY
RESTORE LOG test_mir FROM DISK='D:\test_mir.trn' WITH NORECOVERY

7.分别在主机和备机上创建端点;
CREATEENDPOINTEndpoint_test_mirSTATE=STARTED
AS
TCP(LISTENER_PORT=5022,LISTENER_IP=ALL)FOR
DATABASE_MIRRORING(ROLE=PARTNER);

8.   在备机上执行
ALTERDATABASE test_mirSETPARTNER='TCP://主机IP:5022';

9. 在主机上执行(至此镜像已经建立完毕)
ALTERDATABASEtest_mirSETPARTNER='TCP://备机IP:5022';
ALTERDATABASEtest_mirSETSAFETYOFF –-高性能异步模式

10. 到日志传送的目标服务器上手动还原最后备份的日志文件
RESTORELOGtest_mirFROM DISK=N'd:\database_name.trn'WITH FILE=1,STANDBY=N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\ROLLBACK_UNDO_test_mir.BAK', NOUNLOAD, STATS=10

11.在主机上重新启用日志传送的日志备份job;

至此已配置完成.



在主机的数据库里建个表,插入一些数据,然后再分别到镜像库和日志传送库里检查,是否同步.

日志传送得看你设置的调度时间隔,镜像一般是很快的,在镜像库上查的时候得先创建快照才能查哦~~~

论坛徽章:
0
发表于 2011-02-25 19:24 |显示全部楼层
好文章
ost DBAs dread hearing that they need to restore a database to a point in time, especially if the database is a production database. However, knowing how to do this is of the utmost importance for a DBA's skill set. I'll walk you through the steps of how to restore a SQL Server database to a point in time to recover a data table.

The scenario

A coworker calls you in a panic because he accidentally deleted some production data, and he wants you to restore the lost records.

If you are lucky, you have a data auditing system in place, and you can restore these records from an audit table. If you do not have a tool that will read a transaction log so that you can undo transactions, you will likely need to restore the altered database to a certain point in time on the same or separate server than the server hosting the current database instance.

The restoration process

Note that, for the purpose of this article, I am assuming that your database recovery mode is set to FULL.

The first step in the process is to perform a tail-log backup. You want to perform this type of backup before a database restore to ensure that any records that have changed since the last backup are available to be included in the restore process.

Next you should locate where the database backup files are stored on the machine or the network. It may be a good idea to copy these files to your target server if you are going to be restoring the database on a different server. In the backup file location, find the very last full database backup that was completed (these files usually end with the extension .bak); you need to restore this full backup. The script below applies the full backup file to the NewDatabase database:

RESTORE DATABASE NewDatabase
FROM DISK = 'D: \BackupFiles\TestDatabaseFullBackup.bak'
WITH
MOVE 'PreviousDatabase' TO 'D:\DataFiles \TestDatabase.mdf',
MOVE 'PreviousDatabase_log' TO 'D:\DataFiles \TestDatabase_Log.ldf',
NORECOVERY

The code specifies that the location of the full backup file is on your server's D drive and that you are restoring the file to the database named NewDatabase. The statement moves the data file and the log file from the full backup to new files for my TestDatabase database. The last statement in the script, NORECOVERY, is very crucial. The NORECOVERY mode is one of three available options, which are outlined below.

|> NORECOVERY: Tells SQL Server that you are not finished restoring the database and that subsequent restore files will occur. While the database is in this state, the database is not yet available, so no connections are allowed.
|> RECOVERY: Tells SQL Server that you are finished restoring the database, and it is ready to be used. This is the default option, and it is by far the one that is used most often.
|> STANDBY: Tells SQL Server that the current database is not yet ready to be fully recovered and that subsequent log files can be applied to the restore. You can use this option so that connections are available to the restore database if necessary. However, future transaction logs can only be applied to the database if no current connections exist.

Once you restore the full backup using the NORECOVERY option, you can begin applying the transaction log backups or the differential backup.

Differential backup
A differential backup is a backup of any changes to the database that have occurred since the last full database backup. If you have multiple differential backups, you will only need to restore the very last one taken. In this situation, there are no differential backups, so you can move directly to the transaction log backups.

Transaction log backups
A transaction log backup keeps track of all transactions that have occurred since the last transaction log backup; it also allows you to restore your database to a point in time before a database error occurred. Transaction log backups occur in sequence, creating a chain. When restoring a sequence of transaction log backups to a point in time, it is required that the transaction log files are restored in order.

When you use a database maintenance plan to create the transaction log backups, a time indicator is typically included in the transaction log file name. The script below applies three transaction log backups using the NORECOVERY option, and the last statement restores the database to availability to the time frame at the very end of the last transaction log file.

RESTORE LOG NewDatabase
FROM DISK = ''D: \BackupFiles\TestDatabase_TransactionLogBackup1.trn'
WITH NORECOVERY

RESTORE LOG NewDatabase
FROM DISK = ''D: \BackupFiles\ TestDatabase_TransactionLogBackup2.trn'
WITH NORECOVERY

RESTORE LOG NewDatabase
FROM DISK = ''D: \BackupFiles\ TestDatabase_TransactionLogBackup3.trn'
WITH NORECOVERY

RESTORE LOG NewDatabase
FROM DISK = ''D: \BackupFiles\ TestDatabase_TransactionLogBackup4.trn'
WITH RECOVERY

Restoring to a point in time
In the example above, you restore the database to the end of the last transaction log. If you want to recover your database to a specific point in time before the end of the transaction log, you must use the STOPAT option. The script below restores the fourth transaction log in the log sequence to 4:01 PM -- just before the database mishap occurred.

RESTORE LOG NewDatabase
FROM DISK = ''D: \BackupFiles\ TestDatabase_TransactionLogBackup4.trn'
WITH STOPAT = N'6/28/2007 4:01:45 PM', RECOVERY

Now that you have the database restore to a point where you need it to be, it is time to decide how to help the developers in order to make their situation a little bit easier. My suggestion is to copy the table the developers need to a separate table on the server so that you or they can correct the data problem.

Be prepared

Restoring your database to a point in time is one of those things that you never want to have to use, but you need to be able to complete it if necessary. I took an overview approach as to how to restore your SQL Server database using transaction logs for a certain circumstance. It's important to note that companies use different approaches for backing up data, so it is very important to be thoroughly involved in your company's database backup process. Be sure to test restores and restore situations often so that you are ready when a disaster does occur.

论坛徽章:
0
发表于 2011-02-25 19:34 |显示全部楼层
察看辅助数据库的相关job(LSRestore_Manit_sh-prod)的history,总是呈现下面的错误:

先是数十次的Skip:
---------------------------------------------------------------------------------------------------------
Date                4/7/2010 1:20:00 PM
Log                Job History (LSRestore_sh-prod_MANIT)

Step ID                1
Server                SH-SQLBKUP\SH_PROD_BACKUP
Job Name                LSRestore_sh-prod_MANIT
Step Name                Log shipping restore log job step.
Duration                00:00:25
Sql Severity                0
Sql Message ID                0
Operator Emailed               
Operator Net sent               
Operator Paged               
Retries Attempted                0

Message
2010-04-07 13:20:25.52        Skipped log backup file. Secondary DB: 'MANIT_Report', File: 'e:\manit_trans_log\MANIT_20100406014500.trn'

上面每次skip掉的trn文件都不同,就是尝试每一个trn文件,如果不能restore,就skip掉。
最后是Can not find a appropriate log file:
---------------------------------------------------------------------------------------------------------
Date                4/7/2010 1:20:00 PM
Log                Job History (LSRestore_sh-prod_MANIT)

Step ID                1
Server                SH-SQLBKUP\SH_PROD_BACKUP
Job Name                LSRestore_sh-prod_MANIT
Step Name                Log shipping restore log job step.
Duration                00:00:25
Sql Severity                0
Sql Message ID                0
Operator Emailed               
Operator Net sent               
Operator Paged               
Retries Attempted                0

Message
2010-04-07 13:20:25.61        Skipped log backup file. Secondary DB: 'MANIT_Report', File: 'e:\manit_trans_log\MANIT_20100406014000.trn'
2010-04-07 13:20:25.61        *** Error: Could not find a log backup file that could be applied to secondary database 'MANIT_Report'.(Microsoft.SqlServer.Management.LogShipping) ***
2010-04-07 13:20:25.61        Deleting old log backup files. Primary Database: 'MANIT'
2010-04-07 13:20:25.61        The restore operation completed with errors. Secondary ID: '09f6796f-f6f2-448d-b4af


lijianger
Sorry, 可能是我的表述使你产生了误解,我所说的skip是在每次restore时,都会发生的,因为在secondary 端的copy文件夹下有很多的trn文件,所以LSRestore job会找每一个trn, 如果不能restore就skip, 直到都找遍了,最后就报restore failed. 导出的LSRestore History如下:(需要从下往上看)
Date,Source,Severity,Step ID,Server,Job Name,Step Name,Notifications,Message,Duration,Sql Severity,Sql Message ID,Operator Emailed,Operator Net sent,Operator Paged,Retries Attempted
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Error,0,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,(Job outcome),,The job failed.  The Job was invoked by Schedule 24 (DefaultRestoreJobSchedule).  The last step to run was step 1 (Log shipping restore log job step.).,00:00:26,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Error,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,Executed as user: SH-SQLBKUP\SYSTEM. The step failed.,00:00:26,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.80        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406014000.trn'<nl/>2010-04-07 13:00:25.80        *** Error: Could not find a log backup file that could be applied to secondary database 'MANIT_Report'.(Microsoft.SqlServer.Management.LogShipping) ***<nl/>2010-04-07 13:00:25.80        Deleting old log backup files. Primary Database: 'MANIT'<nl/>2010-04-07 13:00:25.81        The restore operation completed with errors. Secondary ID: '09f6796f-f6f2-448d-b4af-60fffb31586d'<nl/>2010-04-07 13:00:25.81        ----- END OF TRANSACTION LOG RESTORE     -----<nl/><nl/>Exit Status: 1 (Error),00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.71        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406014500.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.60        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406015000.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.50        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406015500.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.42        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406020000.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.31        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406020500.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.13        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406021500.trn'<nl/>2010-04-07 13:00:25.22        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406021000.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:25.03        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406022000.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.94        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406022500.trn',00:00:25,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.83        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406023000.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.74        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406023501.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.64        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406024000.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.55        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406024500.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.36        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406025500.trn'<nl/>2010-04-07 13:00:24.46        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406025000.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.27        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406030000.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.17        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406030500.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.08        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406031000.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:24.00        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406031500.trn',00:00:24,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.91        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406032000.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.83        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406032500.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.72        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406033000.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.63        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406033500.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.53        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406034000.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.38        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406035000.trn'<nl/>2010-04-07 13:00:23.46        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406034500.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.28        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406035501.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.21        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406040000.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:23.03        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406041000.trn'<nl/>2010-04-07 13:00:23.11        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406040500.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:22.96        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406041500.trn',00:00:23,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:22.86        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406042000.trn',00:00:22,0,0,,,,0
04/07/2010 13:00:00,LSRestore_sh-prod_MANIT,Unknown,1,SH-SQLBKUP\SH_PROD_BACKUP,LSRestore_sh-prod_MANIT,Log shipping restore log job step.,,2010-04-07 13:00:22.77        Skipped log backup file. Secondary DB: 'MANIT_Report'<c/> File: 'e:\manit_trans_log\MANIT_20100406042500.trn',00:00:22,0,0,,,,0

论坛徽章:
0
发表于 2011-03-01 13:38 |显示全部楼层
本帖最后由 liyihongcug 于 2011-03-01 13:41 编辑

最好的
日志转移是这样一种处理过程,它能将某一数据库中的事务日志文件依次转存到备份的数据库中,进而为这一数据库创建一个“近乎”热备份。SQL Server 2000的数据库引擎中设置了日志转移功能,并在其中进行处理。所以它会自动完成复原到备份服务器的进程,而不需要数据库管理员手动操作。只有你的产品服务器操作失败,你才需手动完成到备份服务器的复原进程。(注释:尽管SQL Server 7.0和2005中均有日志转移功能,但本文主要针对SQL Server 2000。)
,B-y~5H/b91551
f(WQ]&UO@,S91551  ◆为什么要使用日志转移?
2|http://space.itpub.net/35489/viewspace-420632

论坛徽章:
0
发表于 2011-03-01 13:46 |显示全部楼层
Create Log ShippingITPUB个人空间/VuArL"e hF
1.       SQL Server 节点1 Tonym 和 Tonym02必须位于同一域中,并且SQL1 和SQL2都要使用域账户启动SQL Server服务和SQLServerAgent服务。

2.       在企业管理器中删掉local连接,应用Server Name注册本地服务器 Tonym,辅助服务器Tonym02

3.       在SQL1 服务器上新建共享文件夹NorthwindBackupShare01,赋予启动SQL Server账户的Full 权限。在SQL1服务器上新建文件夹 ReceiveSQL2Logs,用来在进行数据库角色转换时接收从SQL2上传送过来的日志。

在SQL2 服务器上新建共享文件夹NorthwindBackupShare02,赋予启动SQL Server账户    的Full 权限。在SQL2服务器上新建文件夹 ReceiveSQL1Logs,用来接收数据库SQL1上传送过来的日志。

论坛徽章:
0
发表于 2011-03-01 14:15 |显示全部楼层
安装SQLSERVER2000时,会有这样的一个选择画面,这是设置启动sqlserver服务的登录身份。SQLSERVER2000装好后,会产生一个MSSQLSERVER服务,在这里设置的就是启动它这个服务的登录身份。

在选择服务帐户时,有本地帐户和域用户,默认是域用户,两者的区别如下:

本地帐户是SQL安装时所注册用户,本地系统帐户可以没有WINDOWS 2000的网络访问权限,但它可能限制SQL Server安装与其他服务器交互, 域用户帐户使用 Windows 身份验证,即用于连接到操作系统的用户名和密码也用于连接到 SQL Server。

选择“域用户”需要加入域中(存在域控制器),登录验证时使用域控制器中的用户信息。而本地用户使用本机用户信息。

建议使用本地用户,这样即便域控制器失效也能正常启动SQL Server

如果想使用用域用户,而且它的权限更大,
应该首先把主机升级成域控制器,就可以用域用户登录了。

----------------------------
怎样安装域控制器:

选择启动菜单中的管理工具, 单击"设置你的服务器"
选择活动目录, 单击"开始" 启动活动目录安装向导
根据活动目录安装向导的提示操作
如你想直接启动活动目录安装向导, 可直接在 "运行"对话框中键入"dcpromo"


因为Windows Professional 不能成为域控制器 ,因而在Windows Professional
上没有"设置你的服务器" 选项及"dcpromo"命令

在你使用 "活动目录安装向导"前, 先考虑一下几点:

取得建立一个域的信息, 包括:用户登录名, 密码,域名。 该用户权账号必须
具有足够的权限来创建一个新的域控制器
你所需要的域控制器的类型:创建一个新域的域控制器还是为以有的域另增加一
个新的域控制器。 如你准备新生成一个域, 你必须决定是生成一个新的树还是
加入一个已有的树。
怎样取消一个域控制器:

直接在"运行" 对话框中键入"depromo"
根据活动目录安装向导的提示操作
注意:

如果该域控制器含域的目录,在取消改域控制器之前先确认一下是否有另外的域
控制器对用户可见。
如果该域控制器正负责一些主操作, 将这些操作转移到其他的域控制器上去。

如果该域含有子域, 它不能被删除。 如果该域控制器是某一个域中最后一台域
控制器, 删除它意味着将整个域删除。 同理对树叶成立。

那么我们究竟要选择哪一个呢?两者各代表什么意思呢?下文我们就来研究一下。

我们先看熟悉一下两个相关概念。

什么是凭据?
        Windows凭据(Credential)其实就是指用户帐户和口令,我们调用一些API,如 WTSOpenServer,QueryServiceStatus,NetUserEnum等等涉及到RPC的,只要当前用户存储有目标远程机的权限合适的凭据,则这些API就不会因产生ERROR_ACCESS_DENIED而执行失败。
        不好理解么?那么我们来看一下访问别的计算机的情形,加深理解。访问远程计算机必然用到rpc。

        上图就是我们连接到IP为172.16.100.1计算时的情形,这个时候是需要我们输入用户帐户与密码的。这里的用户帐户与密码就是所谓的凭据。

        当我们输入用户帐户与密码后,并把“记住我的密码”打上勾,点确定。那么我们的凭据(即这个用户帐户与密码)被存储了,以后再访问的时候就无须再输入。

安全上下文
        安全上下文(Security context)是指在一个系统中有效的安全属性或规则。

       下面我们来看SQLSERVER2000服务的两种登录方式:本地系统帐户和域用户帐户

本地系统帐户:

        该帐户是对本地计算机具有管理员权限的预定义本地帐户。在本地系统帐户的安全上下文中运行的服务向远程服务器提供本地计算机的凭据。在本地系统帐户的安全上下文中运行的服务不能建立身份验证会话,因为本地系统帐户不属于域中的 Everyone 组。因此,使用该帐户的服务只能通过空会话(没有凭据)来访问网络资源。(这个访问指的是为了完成某项任务服务的自动访问,和我们的连接SQL服务器不一概念)

域用户帐户:

使用专用域用户帐户作为登录帐户

        域用户帐户是指在 Active Directory 目录服务中创建的用户帐户。该帐户是域中 Authenticated Users 组的成员。在域用户帐户的安全上下文中运行的服务向远程服务器提供域用户帐户的 Kerberos 票证。在域用户帐户的安全上下文中运行的服务可以访问经过身份验证的用户或特定用户帐户有权访问的远程服务器上的资源。

使用本地用户帐户作为登录帐户

        本地用户帐户是指在本地计算机上创建的Windows用户帐户。在本地用户帐户的安全上下文中运行的服务向远程服务器提供本地用户帐户的访问标记。如果在远程服务器上配置了匹配用户名和密码,则使用本地用户帐户的服务将能够访问同名帐户有权访问的远程服务器上的资源。虽然此方案行之有效,但是维护这些单独的帐户并保持帐户密码同步将增加管理开销。
        如果你没有加入域,但又需要连接到网络资源,那么可以使用本地用户帐户作为登录帐户。
        由此可见使用域用户帐户可以使用凭据来访问远程计算机,并使用相应的资源。

        例如SQLSERVER服务,当它进行以下操作时,是需要访问远程计算机的。
        • 远程过程调用。
        • 复制。
         • 备份到网络驱动器。
        • 涉及远程数据源的异类联接。
      • SQL Server 代理邮件功能和 SQL 邮件。

         在这几种情况下是无法不使用凭证去访问远程计算机,并使用其资源的。所以必须得把登录类型改为“域用户帐户”,并输入在远程计算机上配置好的,存在的“用户名”和“密码”。

如果只是装在本机进行开发或学习,完全没必要使用域用户帐户登录模式,因为有时候因为切换不同用户而导致服务不能启动。

修改SQLSERVER服务的登录类型

        服务的登录类型是随时可以改变的。可以需要的时候通过以下两种方法修改SQLSERVER服务的登录类型。

1. 通过企业管理器修改

   右击SQLSERVER服务器---“属性”---“安全性”下的“启动服务帐户”


2.通过服务修改

“控制面板”---“服务”----“MSSQLSERVER”,右击---“属性”---“登录”

装SQLSERVER时遇到的一些问题
1.在安装时出现提示"command line option syntax error!type command /? for help"
    这是因为你可能把SQLSERVER的安装文件放在了中文目录下,可以你它改为英文目录即可。每一级目录都不能含有中文。
2.出现提示"以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重启计算机"
打开注册表编辑器(或在命令行输入:regedit),在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control\Session Manager中找到PendingFileRenameOperations项目,并删除它。然后进行安装。

http://hi.baidu.com/ethancheer/b ... 0f85dcac6e7521.html

论坛徽章:
0
发表于 2011-03-01 14:33 |显示全部楼层
根据您提供的信息,我们建议您尝试以下步骤进行排错:



1. 使用域管理员帐号登录到域控制器上,右键点击“我的电脑”——“属性”——“远程”。

2. 点击“选择远程用户”——将需要登录的域用户添加进来。

3. 打开“默认域控制器安全策略”——“计算机配置”——“Windows设置”——“安全设置”——“本地策略”——“用户权利分配”。

4. 确认“允许本地登陆”和“通过终端服务允许登录”选项中都添加了需要登录到域控制器的域用户帐号。

5. 在命令提示符中输入gpupdate /force,重启计算机,刷新组策略。

6. 在客户端上进行测试,查看问题是否依然存在。



我们不建议让普通的域用户帐号登录到域控制器上,这是可能会对域控制器带来一定的安全隐患。



希望我的回答对您有所帮助,如果有什么不清楚的地方,请您回帖。


Tom Zhang 张一平

论坛徽章:
0
发表于 2011-03-02 13:02 |显示全部楼层
原创  windows2003域设置 收藏

目前很多公司的网络中的PC数量均超过10台:按照微软的说法,一般网络中的PC数目低于10台,则建议采对等网的工作模式,而如果超过10台,则建议采用域的管理模式,因为域可以提供一种集中式的管理,这相比于对等网的分散管理有非常多的好处,那么如何把一台成员服务器提升为域控?

  首先,当然是在成员服务器上安装上Windows Server 2003,安装成功后进入系统,
  我们要做的第一件事就是给这台成员服务器指定一个固定的IP,在这里指定情况如下:
  机器名:Server
  IP:192.168.5.1
  子网掩码:255.255.255.0
  DNS:192.168.5.1(因为我要把这台机器配置成DNS服务器)
  由于Windows Server 2003在默认的安装过程中DNS是不被安装的,所以我们需要手动去添加,添加方法如下:“开始—设置—控制面板—添加删除程序”,然后再点击“添加/删除Windows组件”,则可以看到如下画面:

  向下搬运右边的滚动条,找到“网络服务”,选中:

  默认情况下所有的网络服务都会被添加,可以点击下面的“详细信息”进行自定义安装,由于在这里只需要DNS,所以把其它的全都去掉了,以后需要的时候再安装:

  然后就是点“确定”,一直点“下一步”就可以完成整个DNS的安装。在整个安装过程中请保证Windows Server 2003安装光盘位于光驱中,否则会出现找不到文件的提示,那就需要手动定位了。
      
  安装完DNS以后,就可以进行提升操作了,先点击“开始—运行”,输入“Dcpromo”,然后回车就可以看到“Active Directory安装向导”
  在这里直接点击“下一步”:
    
 这里是一个兼容性的要求,Windows 95及NT 4 SP3以前的版本无法登陆运行到Windows Server 2003的域控制器,我建议大家尽量采用Windows 2000及以上的操作系统来做为客户端。然后点击“下一步”:

  在这里由于这是第一台域控制器,所以选择第一项:“新域的域控制器”,然后点“下一步”:

  既然是第一台域控,那么当然也是选择“在新林中的域”:

  在这里我们要指定一个域名,我在这里指定的是demo.com,

这里是指定NetBIOS名,注意千万别和下面的客户端冲突,也就是说整个网络里不能再有一台PC的计算机名叫“demo”,虽然这里可以修改,但个人建议还是采用默认的好,省得以后麻烦。    
  在这里要指定AD数据库和日志的存放位置,如果不是C盘的空间有问题的话,建议采用默认。

  这里是指定SYSVOL文件夹的位置,还是那句话,没有特殊情况,不建议修改:
   
第一次部署时总会出现上面那个DNS注册诊断出错的画面,主要是因为虽然安装了DNS,但由于并没有配置它,网络上还没有可用的DNS服务器,所以才会出现响应超时的现像,所以在这里要选择:“在这台计算机上安装并配置DNS,并将这台DNS服务器设为这台计算机的首选DNS服务器”。

  “这是一个权限的选择项,在这里,我选择第二项:“只与Windows 2000或Window 2003操作系统兼容的权限”,因为在我做实验的整个环境里,并没有Windows 2000以前的操作系统存在”

  这里是一个重点,还原密码,希望大家设置好以后一定要记住这个密码,千万别忘记了,因为在后面的关于活动目录恢复的文章上要用到这个密码的。

  这是确认画面,请仔细检查刚刚输入的信息是否有误,尤其是域名书写是否正确,因为改域名可不是闹着玩的,如果有的话可以点上一步进入重输,如果确认无误的话,那么点“下一步”就正式开安装了:
      
  几分钟后,安装完成:

  点完成:
  点“立即重新启动”。

  然后来看一下安装了AD后和没有安装的时候有些什么区别,首先第一感觉就是关机和开机的速度明显变慢了,再看一下登陆界面:
      
  多出了一个“登陆到”的选择框:
  进入系统后,右键点击“我的电脑”选“属性”,点“计算机”
      
  怎么样?和安装AD以前不一样吧,其它的比如没有本地用户了,在管理工具里多出么多图标什么的,这些将在以后的文章里讲述,这里就不再详谈了。



把一台成员服务器提升为域控制器(二)
在我的上一篇文章中,已经把一台名为Server的成员服务器提升为了域控制器,那我们现在来看一下如何把下面的工作站加入到域。
由于从网络安全性考虑,尽量少的使用域管理员帐号,所以先在域控制器上建立一个委派帐号,登陆到域控制器,运行“dsa.msc”,出现“AD用户和计算机”管理控制台:

  先来新建一个用户,展开“demo.com”,在“Users”上击右键,点“新建”-“用户”:

  然后出现一个新建用户的向导,在这里,我新建了一个名为“swg”的用户,并且把密码设为“永不过期”。


  这样点“下一步”,直到完成,就可以完成用户的创建。然后在“demo.com”上点击右键,先择“委派控制”:

  就会出现一个“委派控制向导”:

  点击“下一步”:

点击中间的“添加”按钮,并输入刚刚创建的“swg”帐号:

  然后点“确定”:

  再点“下一步”:

  在上面的画面中,暂时不需要让该用户去“管理组策略链接”,所以在这里,仅仅选择“将计算机加入到域”,然后点“下一步”:

  最后是一个信息核对画面,要是没有什么问题的话,直接点“完成”就可以了。

接下来转到客户端,看看怎么把XP进来,在实验中采用的客户端操作系统是Windows XP专业版,需要大家注意的是Windows XP 的Home版由于针对的是家庭用户,所以不能加入域,大家别弄错了哟,我们先来设置一下这台XP的网络:
  计算机名:TestXP
  IP:192.168.5.5
  子网掩码:255.255.225.0
  DNS服务器:192.168.5.1,

  设置完网络以后,在“我的电脑”上击右键,选“属性”,点“计算机名”。

  在这里把“隶属于”改成域,并输入:“demo.com”,并点确定,这是会出现如下画面:

  输入刚刚在域控上建的那个“swg”的帐号,点确定:

  出现上述画面就表示成功加入了,然后点确定,点重启就算OK了。来看一下登陆画面有没有什么不一样:

  看到那个“登陆到”了吧,可以选择域登陆还是本机登陆了,在这里选择域“DEMO”,这样就可以用域用户进行登陆了。进入系统后,在“我的电脑”上击右键,选“属性”,点“计算机名”:

 看到用黑框标出来的地方和没有加入到域的时候的区别的吧?
  当把下面的客户端加入到域后,如果域控制器处于关闭状态或者死机的话,那么,会发现下面的客户机无法登陆到域,所以再建立一台域控制器,用来防止其中一台出现意外损坏的情况是很有必要的。后来建立的那台域控制器叫额外域控制器。来看看额外域控制器的建立过程吧:
  当然网络设置永远是在第一步的:
  计算机名:Bserver
  IP:192.168.5.2
  子网掩码:255.255.255.0
  DNS:192.168.5.1
  既然是提升为域控制器,那么DNS组件也是要添加的,添加方法和我的第一篇文章中所定的一样,这里就不再重复了。添加完成后,同样是点击“开始”-“运行”-“dcpromo”:
  出现的向导和操作系统兼容性同安装第一台域控时是一样的,唯一要注意的是下面的那个画面:

  安装第一台时选择的是“新域的域控制器”,这里要选择的是“现有域的额外域控制器”,然后点“下一步”:

  在这里,输入域的管理员帐号的密码,在“域”里填入相应域的DNS全名或NetBios名,点“下一步”:

在这里一定要填入现有域的DNS全名,然后再点“下一步”,接下去的操作和安装第一台域控制器时是一样的,所以就不再写下去了,直到完成就可以了。

活动目录之用户配置文件
关于域用户的开设在前面的文章中(如何把一台成员服务器提升为域控制器(一)、(二))已经涉及过了,所以在这里开设用户的方法就不再重复了,本篇文章主要向大家介绍一下用户配置文件。
  首先,什么是用户配置文件?根据微软的官方解释:用户配置文件就是在用户登陆时定义系统加载所需环境的设置和文件和集合,它包括所有用户专用的配置设置。用户配置文件存在于系统的什么位置呢?那么用户配置文件包括哪些内容呢?来给大家看一副截图:

  用户配置文件的保存位置在:系统盘(一般是C盘)下的“Documents and Settings”文件夹下,有一个和你的登陆用户名相同的文件夹,该用户配置文件就保存在这里,顺便提示一下,如果本机和域上有一个同名用户,并且都登陆过的话,那么就会出现在同名文件夹后面拖后缀的情况,举个例子:比如在一个域(demo.com)里面有一台计算机(testxp),本地有一个swg 的帐号,域上也有一个swg的帐号,并且都登陆过这台计算机,那么会发生如下情况:
  本地帐号先登陆:那么本地的swg的用户配置文件夹为swg,而域用户的用户配置文件夹为swg.demo。
  域帐号先登陆:那么域用户的用户配置文件夹为swg,本地用户的配置文件夹为swg.testxp。
  通过上面的截图,我们可看出,用户配置文件包括桌面设置、我的文档、收藏夹、IE设置等一些个性化的配置。另外需要说明的是在“Documents and Settings”文件夹下有一个名为“All Users”的文件夹,如果你在这个文件夹下的“桌面”文件夹下新建一个文件的话,你会发现所有用户在登陆时的桌面上都有这个文件,所以这个文件夹里的配置是对这台计算机的每个用户均起作用的。
当网络变成域构架后,所有的域用户可以在任意一台域内的计算机登陆,当你在一台计算机上的用户配置文件修改后,你会发现到另一台计算机上登陆时,所有的设置还是原来的,并没有发生修改,这是因为用户的配置文件是保存在本地的,不管是域用户还是本地用户,都是保存在那台登陆的计算机上。我们可以在“我的电脑”上击“右键”,选“属性”,点“高级”,然后在“用户配置文件”里点“设置 ”:

  请注意“类型”里用红框标出的部分,全部是“本地”,这就说明用户配置文件保存在本地,那么如何才能让用户的配置文件随着帐号走,也就是不管用户在哪台计算机上登陆都能保持用户配置文件一致呢?为了解决这个问题,就要用到漫游用户配置文件,原理就是把用户配置文件保存在一个网络的公共位置,当用户在计算机上登陆里,会从网络公共位置把用户配置文件下载到本地并加以应用,然后当用户注销时,会把本地的用户配置文件同步到网络公共位置,以保证公共位置用户配置文件的有效性,以便下一次使用。那么如何来实现这个功能呢?现在就来实践一下:
  首先,要在一个网络的公共位置开设一个共享文件夹,用来存放用户配置文件,在个实验里,就在域控制器上开设一个为share的共享文件夹,并开放权限:

  然后,点击“开始-设置-控制面板-管理工具”,双击“AD用户和计算机”,并选中相应的用户,这里以“swg”帐号为例:

在“swg”帐号上双击,然后选“配置文件”,在“用户配置文件-配置文件路径”里输入:\\192.168.5.1\share\%username%,“192.168.5.1”是域控制器的IP地址,如下图所示:

  然后点确定,接下去就到客户端去,用“swg”帐号登陆一下,看看会发生什么变化。

  如上图所示,DEMO\swg的状态由刚刚的“本地”变成了“漫游”,此时注销一下用户,那么就会自动的将该用户的本地用户配置文件同步到网络公共位置,如果再用“swg”到另外的域内计算机上去登陆的话,会发现所有的用户配置文件和这台计算机上是一样的。那么服务器上发生了些什么变化呢?

  如上图所示,服务器的“share”文件夹里会自动创建一个和用户名一样的“swg”文件夹,默认情况下这个文件夹只允许对应的用户打开:

  画面很熟悉吧?
目前很多公司的IT Pro都有共同的感叹,就是用户喜欢把自己的桌面什么的搞得乱七八糟,虽然通过组策略可以限制掉一部份,但总觉得不是很完善,在这里,向大家推荐使用强制用户配置文件,用户可以对自己个人配置文件任意修改,但是一旦注销后,这些修改将不会被保存,这样用户下次登陆里,用户的配置文件还是保持和原来一样,那么如何实现这个功能呢?其实只要将用户配置文件夹下的“Ntuser.dat”改成“Ntuser.man”就可以了,来看一下修改过程:
  首先,在显示隐藏文件和已知文件的扩展名,可以在“工具-文件夹选项-查看”里进行修改:
~
  点“确定”后,就可以在看到那个“Ntuser.dat”文件了,但此时会有一个问题,如果去修改C:\Documents and Settings\swg下的“Ntuser.dat”,会发现根本没有办法修改这个文件,因为文件在使用中,无法修改;如果去修改网络公共位置的 “Ntuser.dat”,也就是\\192.168.5.1\share\swg下的“Ntuser.dat”,修改当然可以修改,但是由于在 “swg”用户注销的时候,本地的“Ntuser.dat”会把网络公共位置的“Ntuser.man”覆盖掉,也就是等于没有修改。很多人都想直接在服务器上更改 “swg”文件夹的所有者,然后给管理员帐号添加权限,这样就可以直接在服务器上把“Ntuser.dat”改掉,但本人实践过几次,都发现这样的操作会引起一些权限无法继承,而导致出错的情况,所以不建议大家使用,这里推荐一种方法:
  先把“swg”帐号注销掉,然后用另外一个帐号登陆,比如管理员,当然,如果在登陆成功后直接去访问\\192.168..5.1\share\swg以试图修改的话,那么你将会感到失望,因为还是拒绝访问的,那么如何访问并修改呢,可以这样操作,“开始-运行-cmd”然后回车,这样就启动了命令行,在命令行下输入:net use \\192.168.5.1 password /user:swg,显示“命令成功完成”,这样就利用“swg”和服务器建立一个连接,此时就可以\\192.168.5.1\share\swg,里进行修改了,

  然后再注销管理员帐号,用“swg”登陆,看看有没有成功:

  看到了吧,类型由“漫游”变成了“强制”,现在可以在桌面这些地方进行任意的修改,你会发现注销再登陆,又恢复到了原样。这种设置在多人使用同一个帐号的情况下非常有用。
  最后再请大家注意两个问题:
  1、 在配置强制用户配置文件时,当用其它用户登陆修改时,请保证被修改的用户处于注销状态,为什么?大家不妨自己想一想!
  2、 当使用漫游用户配置文件时,请不要在桌面等地方存放一些大型的程序或文件,因为用户在登陆和注销过程中会下载和上传配置文件,如果文件过大,会影响登陆和注销的速度。

论坛徽章:
0
发表于 2011-03-03 18:59 |显示全部楼层
如何使用向导设置SQL Server 2005日志传送(三)
时间:2010-09-07 16:41来源:互联网 作者:互联网 点击:499次
SQL Server 2005,作者在本文中继续介绍如何使用向导设置SQL Server 2005日志传送。文中的这个向导有许多的选择并且对于新手而言可能有些困惑。但是,在大多数情况下默认值都是……
此文来自人人IT网,请访问www.renren.it获取更多内容
【TechTarget中国原创】在此对话框中,你可以选择副服务器(你将把事务日志拷贝到这个服务器上)以及副数据库(日志所要传送到的数据库名称)。
此文来自人人IT网,请访问www.renren.it获取更多内容

  注意下面这些针对Initialize Secondary Database的选项:
此文来自人人IT网,请访问www.renren.it获取更多内容

    * Yes, generate a full backup of the primary and restore it into the secondary database.这个选项创建了一个你想要进行日志传送的数据库的备份,然后将它恢复到副服务器上。
    * Yes, restore an existing backup of the primary database.如果你想要使用一个之前备份的数据库,就可以使用这个选项。这里有一个选项用于选择路径和备份名称。
    * No, the secondary database is initialized.Use this option if:在以下情况使用这个选项: 

    1、你想要进行日志传送的数据库备份已经恢复到副数据库了。 
此文来自人人IT网,请访问www.renren.it获取更多内容

    2、主数据库已经是完整或批量日志恢复模式。 
 
    3、从备份发生后主数据库上没有再做任何事务日志备份,或者它们已经完成,并恢复到副数据库上了。
此文来自人人IT网,请访问www.renren.it获取更多内容

    4、副数据库已经使用无恢复选项重建好了。
此文来自人人IT网,请访问www.renren.it获取更多内容

  一旦你已经配置了最适合你的选项,点击“Copy Files”标签,如图8所示。
此文来自人人IT网,请访问www.renren.it获取更多内容

  Copy Files对话框
此文来自人人IT网,请访问www.renren.it获取更多内容

  图8:Copy Files对话框。
此文来自人人IT网,请访问www.renren.it获取更多内容

  在“Copy Files”标签中选择你从主服务器到副服务器上拷贝文件的存放位置。如果你在Transaction Log Backup Settings(如图1所示)中选择一个网络路径,那么网络途径必须映射到副服务器的物理位置上,同时你必须在此处输入路径(如,如果\\ServerName\ShareName$是本地路径C:\Backup的共用名,那么就在此处输入这个路径)。
此文来自人人IT网,请访问www.renren.it获取更多内容

  你也可以使用事务日志备份存储在主服务器上的网络路径。选择你想要保留事务日志备份的时间长度——当然,必须认识到,保留时间可能与你在“Transaction Log Backup Settings”对话框(图1)中的设置冲突。
此文来自人人IT网,请访问www.renren.it获取更多内容

  你同样还可以选择你希望日志拷贝到副服务器上的频率。
此文来自人人IT网,请访问www.renren.it获取更多内容

  一旦你配置好了拷贝的事务日志备份文件的选项,点击“Restore Transaction Log ”标签,如图9所示。
此文来自人人IT网,请访问www.renren.it获取更多内容

  Restore Transaction Log标签
此文来自人人IT网,请访问www.renren.it获取更多内容

  图9:Restore Transaction Log标签
此文来自人人IT网,请访问www.renren.it获取更多内容

  数据库恢复状态选项:
此文来自人人IT网,请访问www.renren.it获取更多内容

    * 无恢复模式——这是一个默认选项。在这个选项中,目的地数据库将无法使用。
    * 备用模式——使用这个选项,在下一个事务日志备份应用之前,目的地数据库仅仅是只读形式。在事务日志被应用后,数据库重新将返回只读模式。这样就只允许只读访问并且用户将无法对数据库作任何修改(如,创建索引),而且在下一个数据库备份被应用时,他们将被断开。

  还有一个选项是通过设置一组小时或分钟数来延迟恢复事务日志备份。有些企业想要保持他们的备用服务器与他们的源服务器几个小时不同步。
此文来自人人IT网,请访问www.renren.it获取更多内容

  在默认情况下,如果事务日志在定义的“Alert if no restore occurs within”间隔的时间内没有恢复,那么就会有一个告警信息发出。通常情况下,这个警告是发生在主服务器进行备份操作的时候。
此文来自人人IT网,请访问www.renren.it获取更多内容

  你还有一个选项就是设置事务日志恢复发生的频率。这些设置是在Restore任务对话窗口配置的。
此文来自人人IT网,请访问www.renren.it获取更多内容

  你设置好后,点击“OK”,然后你将看到“Database Properties”对话框(如图10所示)的“Transaction Log Shipping”对话框。
此文来自人人IT网,请访问www.renren.it获取更多内容

  Transaction Log Shipping标签
此文来自人人IT网,请访问www.renren.it获取更多内容

  图10:Transaction Log Shipping标签
此文来自人人IT网,请访问www.renren.it获取更多内容

  在此对话框中,注意我们是如何配置服务器F作为我们的副服务器,同时该数据库p2p3是我们日志传送Northwind数据库的目地数据库。你也可以日志传送到第二个副/备用服务器——这个可能是你的DR站点的另外一个副服务器。
此文来自人人IT网,请访问www.renren.it获取更多内容

  对于任何具备大量日志传输数据库的企业,你可能都想要创建一个监控服务器。选择“Use a monitor server instance”(图10)然后点击设置按钮来配置一个Log Shipping Monitor服务器,就可以创建一个检测服务器。如图11所示。
此文来自人人IT网,请访问www.renren.it获取更多内容

  创建一个监控服务器
此文来自人人IT网,请访问www.renren.it获取更多内容

  图11:创建一个监控服务器。
此文来自人人IT网,请访问www.renren.it获取更多内容

  使用连接按钮,你可以连接到你想用作监控的服务器。定义连接方式,或者通过Windows认证,或者通过SQL Server登录。你可以定义工作历史保留时间,但通常使用默认值都是一个不错的选择,然后定义如何发送警报。默认选项(当SQL Server Agent启动时自动启动)是一个不错的选择,因为这时警报几乎都是实时的。你可以选择一个每小时提醒或者选择一个任意时间间隔。
此文来自人人IT网,请访问www.renren.it获取更多内容

  总结
此文来自人人IT网,请访问www.renren.it获取更多内容

  这样我们就完成了使用SQL Server 2005的日志传送的介绍。这个向导有许多的选择并且对于新手而言可能有些困惑。但是,在大多数情况下默认值都是最优选项,并且我已经指出了在什么情况下最好选择非默认选项。
此文来自人人IT网,请访问www.renren.it获取更多内容
Hilary Cotter

Hilary Cotter, SQL Server MVP 是一名有着20多年IT从业经验的Web和数据库顾问,并且与SQL Server打了11年的交道。Cotter是RelevantNoise的Text Mining总监,致力于商业智能的博客索引。在2001年,他首次被Microsoft授予Microsoft SQL Server MVP。Cotter在University of Toronto获得了机械工程的应用科学学士学位,同时还在University of Calgary学习经济学和UC Berkeley学习计算机科学。他撰写了《A Guide to SQL Server 2000 Transactional and Snapshot Replication》,并且目前致力于合并复制和Microsoft搜索技术。你可以通过hilary.cotter@gmail.com与Hilary Cotter取得联系。
此文来自人人IT网,请访问www.renren.it获取更多内容
如何使用向导设置SQL Server 2005日志传送(三)

本文摘自:http://www.searchdatabase.com.cn/showcontent_17302.htm

http://www.renren.it/a/shujuku/Sqlserver/20100907/18190.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP