这是一个先删除用户,再重建用户,然后赋权的脚本,可以放到crontab中定时执行
source /opt/.bash_profileDATE=$(date +%Y%m%d)
sqlplus /nolog <connect / as sysdba
DROP USER WAPUSER CASCADE
DROP USER JLTGAME CASCADE
CREATE USER "WAPUSER" PROFILE "DEFAULT"
IDENTIFIED BY "123456" DEFAULT TABLESPACE "JLTGAME"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK
CREATE USER "JLTGAME" PROFILE "DEFAULT"
IDENTIFIED BY "JLTGAME123" DEFAULT TABLESPACE "JLTGAME"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK
GRANT CREATE VIEW TO JLTGAME
GRANT CREATE TABLE TO JLTGAME
GRANT ALTER ANY TYPE TO JLTGAME
GRANT CREATE SESSION TO JLTGAME
GRANT CREATE SYNONYM TO JLTGAME
GRANT CREATE TRIGGER TO JLTGAME
GRANT ALTER ANY INDEX TO JLTGAME
GRANT ALTER ANY TABLE TO JLTGAME
GRANT CREATE ANY TYPE TO JLTGAME
GRANT CREATE ANY VIEW TO JLTGAME
GRANT CREATE SEQUENCE TO JLTGAME
GRANT CREATE SNAPSHOT TO JLTGAME
GRANT ALTER TABLESPACE TO JLTGAME
GRANT CREATE ANY INDEX TO JLTGAME
GRANT CREATE ANY TABLE TO JLTGAME
GRANT CREATE PROCEDURE TO JLTGAME
GRANT ALTER ANY TRIGGERTO JLTGAME
GRANT CREATE ANY TRIGGER TO JLTGAME
GRANT ALTER ANY INDEXTYPE TO JLTGAME
GRANT CREATE ANY INDEXTYPE TO JLTGAME
GRANT UNLIMITED TABLESPACE TO JLTGAME
exit
EOF
imp userid=jltgame/JLTGAME123 file=/backup/52backup/jltgame$DATE.dmp full=y log=/opt/logjltgame$DATE.dmp
有三种方法:1:通过Generate Scripts(包括数据) ,这个方法呢,如果对于很小的数据库,倒是一个非常方便的方法。注意前提是数据库很小,如果数据库很大,那千万别选这个方法,SQL导入数据的性能会折磨死你。
2:通过Generate Scripts(生成表、视图等),然后使用SQL Server Import and Export Tool导入数据
3: Red Gate SQL Compare 工具
Generate Scripts步骤:
Step 1: 单击某个需要转换的数据库,然后选择任务(Tasks)——生成脚本(Generate Scripts)
Step 2: d出生成脚本指导界面
Step 3:选择需要导出的数据库对象,有导出整个数据库对象和选择指定数据库对象两个选项
Step 4: 设置生成脚本选项,例如指定脚本位置,脚本文件的编码等等选择,最重要的是高级选项”Advanced“
最好在”Script for Server Version“ 里面选择”SQL Server 2005“等选项
测试服务器这个版本里面没有'Script Data”(生成数据的脚本)选项,如果要通过脚本插入数据,那么就必须选择这个选项。
Step 5: Summray your selections, 点击Next继续
Step 6: 执行过程。完成后即生成了相应脚本文件。
将生成的脚本在另外一台测试服务器执行,创建相应的数据库以及数据库对象。
”SQL Server Import and Export“工具进行数据导入, *** 作步骤如下所示:
SQL Server Import and Export
Step 1: 欢迎界面,点击Next跳过。
Step 2: 选择数据源(Data Source),需要选择“SQL Server Native Client 10”, 输入身份认证信息,我选择Windows 身份认证。选择
需要导出数据的数据库,例如,选择一个测试数据库TSL
Step 3:配置需要导入的Destination,选择对应的服务器和数据库
Step 4:两个选择,选项1是用于整个表或视图导入导出,选项2用于书写查询SQL或导入导出
Step 5: 勾选需要导数的脚本,单击Source旁边的选项,即可选择全部对象。有时候需要编辑“Edit Mappings"选项,勾选”Enable identity Insert“,否则会导致后面导入导出报错
Step 6: 勾选立即执行,点击Next执行下一步
Step 7 : 执行过程,需要检查是否执行成功,查看相关出错信息。
执行完成后,然后在测试服务器将该数据库备份压缩后,通过FTP上传到各个工厂,进行还原。
关于 Red Gate SQL Compare的 *** 作,也非常方便简单,由于测试过程中没有截图,就此略过。
由于测试用的数据库比较小,不知道比较大的数据库,例如几百G的数据, *** 作起来是否会遇到性能等杂七杂八的问题。不过相信很多人是不会遇到这么奇葩的案例的。例如使用导入导出工具,其实就会遇到一些小问题(以前遇到的):
1:在验证时出现错误,错误信息如下所示:
- Validating (Error)
Messages
* Error 0xc02020f4: Data Flow Task 1: The column "xxxx" cannot be processed because more than one code page (936 and 1252) are specified for it.
(SQL Server Import and Export Wizard)
* Error 0xc02020f4: Data Flow Task 1: The column "xxxx" cannot be processed because more than one code page (936 and 1252) are specified for it.
(SQL Server Import and Export Wizard)
解决:检查你源数据库和目标数据库的排序规则是否不一致,如果不一致,就会出现大量上面错误。
2:在验证时出现下面错误信息
- Validating (Error)
Messages
* Error 0xc0202049: Data Flow Task 1: Failure inserting into the read-only column "xxxxx".
(SQL Server Import and Export Wizard)
* Error 0xc0202045: Data Flow Task 1: Column metadata validation failed.
(SQL Server Import and Export Wizard)
解决:出现这个错误,是因为这一列是自动增长,需要在”Edite Mappings" 选项里面勾选“Enable Identity Insert”选项,如果数据库里面有大量这类列,是个头疼的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)