镜像整理文档
- 格式:docx
- 大小:637.71 KB
- 文档页数:53
景象1: --------------------在 master 数据库上,创建数据库主密钥(如果不存在)。 若要查看数据库的现有密钥,请使用 sys.symmetric_keys 目录视图。
若要创建数据库主密钥,请使用下面的 Transact-SQL 命令 USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'killkill';
--使用唯一的强密码,并将其记录到一个安全的位置(数据库主密钥是指用于保护证书私钥的对称密钥以及数据库中存在的非对称密钥。当创建主密钥时,会使用 Triple DES 算法以及用户提供的密码对其进行加密。若要启用主密钥的自动解密功能,请使用服务主密钥对该主密钥的副本进行加密,并将副本存储在数据库和 master 中。通常,每当主密钥更改时,便会在不进行提示的情况下更新存储在 master 中的副本。可以使用 ALTER MASTER KEY 的 DROP ENCRYPTION BY SERVICE MASTER KEY 选项对该默认行为进行更改。必须使用 OPEN MASTER KEY 语句和密
码打开未使用服务主密钥进行加密的主密钥。
master 中 sys.databases 目录视图的 is_master_key_encrypted_by_server 列指示是否使用服务主密钥对数据库主密钥进行加密。
可以在 sys.symmetric_keys 目录视图中查看有关数据库主密钥的信息)---------------------------------------------------------------------------
sql 警告: 您创建的证书尚未生效;其生效日期为将来时间。--- 你的证书过期了,我不是说过有两个日期需要设置,一个是生效日期,一个是过期日期 2在 master 数据库中,对服务器实例创建一个用于其数据库镜像出站连接的加密证书 你可以通过select * from sys.certificate的expiry_date列检查证书的过期时间. CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' , START_DATE = '2009-07-13';--生效日(小于expiry_date) --起始日(start_date)
1. 若要查看 master 数据库中的证书,可以使用下面的 Transact-SQL 语句: 复制 USE master; SELECT * FROM sys.certificates;
--------------------------------------------------------------------------------------- 错误提示:默认情况下,数据库镜像是被禁用的。当前提供的数据库镜像仅供评估使用,并不应使用于生产环境中。若要以评估为目的启用数据库镜像,请在启动过程中使用跟踪标志 1400 解决:DBCC TRACEON(1400,-1) 错误提示:证书、非对称密钥或私钥文件不存在或格式无效
(默认情况下,数据库镜像是禁用的。但是,只需使用跟踪标志 1400 作为启动参数,您就可以出于评估目
的而启用数据库镜像。不应该在生产环境中使用数据库镜像。Microsoft 产品支持服务不支持使用数据库镜像的数据库或应用程序。SQL Server 2005 中包含的数据库镜像文档仅用于评估目的。此外,SQL Server 2005 支持和升级的文档策略不适用于数据库镜像文档。
使用跟踪标志 1400 启动 SQL Server 2005 实例之后,您就可以设置和评估数据库镜像了。有关更多信息,请参阅 SQL Server 2005 联机丛书。
注意:跟踪标志 1400 是个临时标志。 当数据库镜像可用于常规生产时,跟踪标志 1400 将被删除。
更多信息 使用 SQL Server 2005 的数据库镜像时,请考虑以下问题。
准备升级到 SQL Server 2005 最终版本 升级前将恢复队列大小设置为 UNLIMITED 在 SQL Server 2005 的最终版本中,UNLIMITED 值是唯一受支持的恢复队列大小。此外,不支持 ALTER DATABASE 语句的 SET PARTNER REDO_QUEUE 选项。 为了避免数据库镜像以后产生问题,在升级前您必须将所有不一致的数据库大小重置为 UNLIMITED 值。
要查看某个 SQL Server 实例的数据库恢复队列设置,请参阅 sys.database_mirroring 目录视图中的 mirroring_redo_queue_type 列。镜像数据库支持的唯一值为 UNLIMITED。如果数据库的值为 MB,则在当前主体服务器上对该数据库执行以下 Transact-SQL 语句。ALTER DATABASE SET PARTNER REDO_QUEUE UNLIMITED 在升级任一合作伙伴前,暂停或停止数据库镜像 如果某一合作伙伴正在运行 SQL Server 2005 的最终版本,而其他合作伙伴运行的是 SQL Server 2005 的预发布版本,数据库镜像将无法运行。在升级任一合作伙伴前,应暂停或停止所有数据库镜像会话的数据库镜像。然后,升级所有合作伙伴并恢复数据库镜像。
设置并评估数据库镜像 不支持 ALTER DATABASE 语句的 SET PARTNER REDO_QUEUE 选项。UNLIMITED 值是唯一受支持的恢复队列大小。
处理主体服务器上的日志驱动器出现的问题 如果主体服务器上的日志驱动器出现了问题,已发送到镜像服务器的日志记录和在镜像数据库上重播的日志记录就可能从不会写入主体服务器的磁盘。这种情况下,此处创建的日志备份无法应用于镜像数据库。因此,请确保数据库镜像会话的持续运行。只要数据库镜像会话运行正常,您就能修复该日志驱动器的问题或者切换合作伙伴角色。您可以通过数据库镜像故障转移和重新同步或强制为镜像数据库提供服务来切换合作伙伴角色。如果您强制为镜像数据库提供服务,所有尚未到达镜像服务器的新日志记录都将丢失。
重要说明:保持数据库镜像运行。如果您关闭数据库镜像,则必须执行完全备份并还原数据库以重建数据库镜像
) -------------------------------------------------------------------------------- 解决:create symmetric key sym_tom
with ALGORITHM = desx encryption by certificate HOST_MST_cert SELECT * FROM sys.symmetric_keys --查看密钥 DROP SYMMETRIC key sym_tom Create certificate Tomcert with subject = 'Tom Certificate', expiry_date = '2007-07-13 10:26:30' CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR --负载为数据库镜像 DATABASE_MIRRORING
( AUTHENTICATION = CERTIFICATE HOST_MST_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );----证书生效 BACKUP CERTIFICATE HOST_A_cert TO FILE = 'D:\SQLBackup\HOST_A_cert.cer';---备份证书(主备机) CREATE LOGIN HOST_B_login WITH PASSWORD = 'killkill';--登录 2CREATE USER HOST_B_user FOR LOGIN HOST_B_login;--用户 3CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:\SQLBackup\HOST_B_cert.cer';--证书生效 4GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];--赋予登录用户 ALTER DATABASE shishan SET PARTNER = 'TCP://10.168.6.45:5022';--主机(备机执行)
LISTENER_PORT = 5022? 5.镜像运行模式 1.高安全性模式:支持同步操作,事务在主体与镜像上同时提交,会延长事务滞后时间。 2.高性能模式:支持异步运行,镜像服务器可能稍微滞后于主体数据库。 值得说明的是,高安全性模式,由于是主体与镜像为同步操作,镜像的未提交会导致主体不进行提交,可能会有较大的影响。 比如:DBServerA与DBServerB数据库互为镜像,DBServerA为主体,DBServerB为镜像;