linux怎么查看本机内存大小
274
2022-09-04
SqlServer基础语法(三)
1.数据库备份的方法:
完整数据库备份GPOSDB 文件大小:23MB 日志备份 GPOSDB日志备份文件大小:211KB
--完整备份
Backup DATABASE GPOSDB To disk='D:\GPOSDB_backup_201207160152.bak'
--还原
restore database 数据库 from disk='c:\abc.bak' WITH replace
2.收缩数据库的大小的方法
数据文件:建立聚集索引,或者重建索引,然后shrinkfile 收缩数据文件 日志文件:数据库恢复模式不能是简单要大容量日志或者完整 , 定期备份事务日志,才能截断事务日志3.设置数据库自动增长注意要点
-1要设置成按固定大小增长,而不能按比例 对于小的数据库,设置一次增长50MB到100MB,大的数据库,一次增长100MB到200MB--2要定期监测各个数据文件的使用情况,尽量保证每个文件剩余的空间一样大或者是期望的比例 --3设置文件最大值--4发生增长后,要及时检查文件空间分配情况,避免SQL总是往个别文件写数据4.模仿灾难发生时还原adventurework数据库 示例 stopat
--模仿灾难发生时还原adventurework数据库 示例 stopat BACKUP DATABASE AdventureWorks TO DISK= 'D:\MSSQL\Databackup\AdventureWorks.bak' BACKUP LOG AdventureWorks TO DISK ='D:\MSSQL\Databackup\AdventureWorks.trn' GO --灾难发生后,试图创建一个尾日志备份 BACKUP LOG AdventureWorks TO DISK='D:\MSSQL\Databackup\AdventureWorkstail.trn' WITH norecovery; GO ----------------------------------------用界面的话这两步一起完成--从备份恢复一个全备份 RESTORE DATABASE AdventureWorks FROM DISK ='D:\MSSQL\Databackup\AdventureWorks.bak' WITH FILE=1,NORECOVERY --从备份中恢复一个正常的日志备份 RESTORE LOG AdventureWorks FROM DISK ='D:\MSSQL\Databackup\AdventureWorks.trn' WITH NORECOVERY; -------------------------------------------------------------- --用stopat 恢复尾日志备份 RESTORE LOG AdventureWorks FROM DISK='D:\MSSQL\Databackup\AdventureWorkstail.trn' WITH STOPAT='2012 20:59:00', RECOVERY;GO
5.检查日志文件不能被截断的原因
--检查日志文件不能被截断的原因 SELECT * FROM sys.databases WHERE database_id=9 --SELECT * FROM sys.sysdatabases --查看日志占用日志文件占用率 DBCC SQLPERF(LOGSPACE) GO --查看不能截断日志文件的原因 SELECT name,recovery_model_desc,log_reuse_wait,log_reuse_wait_desc FROM sys.databases GO --检查最老的活动事务 DBCC OPENTRAN GO SELECT st.text,t2.* FROM sys.dm_exec_sessions AS t2,sys.dm_exec_connections AS t1 CROSS APPLY sys.dm_exec_sql_text(t1.most_recent_sql_handle) AS st WHERE t1.session_id=t2.session_id AND t1.session_id>50 --如果事务比较久,可以用kill命令杀掉进程 KILL 54
6.检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题
1 --检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题 2 --注意:重新链接只能链接SQL登录帐号,不能链接Windows登录帐号 3 --如果不选择重新链接可以使用备份master数据库的方法还原到新的服务器上,可以避免一个数据库有 4 --成千上百个数据库用户的情况 5 SELECT * FROM sys.server_principals 6 SELECT * FROM sys.database_principals 7 8 --检测孤立用户 9 USE GPOSDB --要建立镜像的数据库10 EXEC sys.sp_change_users_login @Action = 'report', -- varchar(10)11 @UserNamePattern = NULL, -- sysname12 @LoginName = NULL, -- sysname13 @Password = NULL -- sysname14 GO15 16 --在服务器新建一个同名的登录帐号 ,例如hengshan,然后重新链接hengshan服务器登录帐户与数据库用户hengshan,将17 --他们的SID改成一致的18 USE GPOSDB19 GO20 EXEC sys.sp_change_users_login @Action = 'update_one', -- varchar(10)21 @UserNamePattern = 'hengshan', -- sysname
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~