sap数据库备份怎么恢复(sql server怎么排序?)

发布日期:2023-04-23 16:34:19   浏览量 :374
发布日期:2023-04-23 16:34:19  
374

sap数据库备份怎么恢复(sql server怎么排序?)

一、sql server怎么排序?
开始之前,先确认排序规则(或大小写是否敏感)

1

2

3

4

5

6

7

8

9

10

--查看服务器排序规则(安装时指定的排序规则)

SELECT SERVERPROPERTY('COLLATION') AS ServerCollation

,DATABASEPROPERTYEX('tempdb','COLLATION') AS TempdbCollation

,DATABASEPROPERTYEX(DB_NAME(),'COLLATION') AS CurrentDBCollation

--查看数据库排序规则

SELECT name, collation_name FROM sys.databases

--当前数据库是否大小写敏感

SELECT CASE WHEN N'A'=N'a' THEN N'不敏感' ELSE N'敏感' END

此环境实例中:

服务器排序规则为 Chinese_PRC_BIN

当前数据库排序规则为 Chinese_PRC_CI_AS

若当前数据库创建的所有对象和执行脚本时,如果用到了变量、临时对象等,大小写不一致则出现问题。二进制(_BIN)排序规则是区分大小写的。

安装实例时指定的排序规则,就是 master 数据库的排序规则,同时 model 和 msdb 的排序规则也保持一致,而 tempdb 和用户数据库的排序规则都是参照 model 数据库一样的。

系统数据库是不能直接更改排序规则的,因此只能重建系统数据库,且让系统数据库的排序规则都一致。

重建实例排序规则和系统数据库排序规则:

1、备份系统数据库!必要的,失败了或者以后要使用当前环境时,还可以回退!

2、记住所有数据库及文件路径,保持到 excel 中。如果记得住所有数据库位置的话就不用了。

1

select DB_NAME(database_id) as name,physical_name from sys.master_files

3、导出服务器配置(sp_configure)到 excel。因为重建系统数据库后配置会被初始化。

4、导出账号信息到 txt。数据库重建,账户信息都会丢失,除了备份也要单独备份账号。(SQL Server 中登录账号与数据库用户迁移)

5、导出链接服务器生产脚本到 txt ,如果有的话。

6、导出代理作业到 txt 。

7、(如果还有其他配置,如审核、邮件配置、策略等,都保存出来,后续再重建)

8、分离所有用户数据库。

1

2

3

select 'ALTER DATABASE [' name '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE' char(10) 'go' char(10)

'EXEC master.dbo.sp_detach_db @dbname = N''' name '''' char(10) 'go' char(10)

from sys.databases where name not in('master','model','msdb','tempdb')

9、停止所有数据库相关服务。

10、重建数据库并制定新的排序规则。打开命令行,进入安装目录。

1

2

cd D:\\Software\\en_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_520517

setup /QUIET /ACTION=REBUILDDATABASE /instancename=mssqlserver /SQLSYSADMINACCOUNTS=服务器账号 /sapwd=密码 /sqlcollation=Chinese_PRC_CI_AS

11、启动 SQL Server 引擎服务,其他暂不启动。

12、创建登录账户(之前导出的脚本)

13、附加所有用户数据库。

14、创建代理作业、链接服务器、更配置等!

完成!~

如果重建系统数据库后,还原 master 数据库,那么服务器排序规则和 master 数据库排序规则都还原和以前一样,所以不能还原,除非恢复到以前的环境。

如果还原 msdb 或 model ,该数据库排序规则也会还原,所以系统数据库备份都不要还原,重建系统数据库之后只能重新配置。

更改用户数据库排序规则

1

ALTER DATABASE test COLLATE Chinese_PRC_CI_AS

更改数据库排序规则时,需要更改下列内容:

>> 将系统表中的任何 char、varchar、text、nchar、nvarchar 或 ntext 列更改为使用新的排序规则。

>> 将存储过程和用户定义函数的所有现有 char、varchar、text、nchar、nvarchar 或 ntext 参数和标量返回值更改为使用新的排序规则。

>> 将 char、varchar、text、nchar、nvarchar 或 ntext 系统数据类型和基于这些系统数据类型的所有用户定义的数据类型更改为使用新的默认排序规则。

对于数据库内字段定义的排序规则,参考下面的 设置或更改列排序规则。

设置或更改列排序规则:

1

2

3

4

5

6

7

8

--示例

CREATE TABLE dbo.MyTable(

PrimaryKey INT PRIMARY KEY,

CharCol VARCHAR(10) COLLATE French_CI_AS NOT NULL

);

GO

ALTER TABLE dbo.MyTable ALTER COLUMN CharCol VARCHAR(10) COLLATE Latin1_General_CI_AS NOT NULL;

GO

如果下列其中之一当前正在引用一个列,则无法更改该列的排序规则:

>> 计算列

>> 索引

>> 自动生成或由 CREATE STATISTICS 语句生成的分发统计信息

>> CHECK 约束

>> FOREIGN KEY 约束

二、删除的软件不能重新安装.怎么回事?
一个软件卸载了再重新安装可提示已安装一般是由于注册表没有清除完全。可以使用删除注册表的方法。首先按下键盘上的"WIN R"键。

在左下角会出现一个“运行"窗口,在这里可以快速运行一些程序,在里面输入regedit,点击确定可以打开注册表项。

打开注册表管理器之后,按下F3,会弹出一个搜索窗口,在里面输入要删除软件,也就是要安装软件的名称,找到上次残留的注册表,例如FLASH。

搜索完成后,就可以看到FLASH的键值,直接右击全部都删除掉,保存退出注册表管理器,再去正常安装程序即可。或者使用第三方软件清理注册表:打开第三方软件后,找到垃圾清理功能;在垃圾清理功能下,可以勾选上“注册表垃圾”项,然后点击开始扫描,会自动检测出卸载后残留的注册表;然后再点立即清理,会自动把注册表清理干净。
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部