As400/db2命令详解

来源:互联网 发布:淘宝达人登录 编辑:程序博客网 时间:2024/06/05 05:01


一、备份数据库

1.创建备份目录名,即库名

命令:CRTLIB   LIB(备份目录名)  TYPE(*PROD)   AUT(*EXCLUDE) CRTAUT(*CHANGE)  

CRTOBJAUD(*USRPRF)   TEXT('XXXXX')

参数说明:TYPE(*PROD)  只是标识这个lib 是用于正式环境,还是测试开发环境‘*TEST';AUT(*EXCLUDE) 意思lib中新建的obj对*PUBLIC 无用户组和特殊权限用户权限是*EXCLUDE 无权限。

举例:crtlibdbbackup    

2.创建备份文件名,即备份设备名

命令:crtsavf备份目录名/备份文件名

举例:CRTSAVF dbbackup/mzgjj

3.将指定的数据库备份到指定的备份文件中

命令:

savlib lib(数据库名) dev(*savf)savf(备份目录名/备份文件名) savact(*NO)

DTACPR(*MEDIUM) TGTRLS(*CURRENT)OUTPUT(*PRINT)

参数说明:

DTACPR参数:压缩方式,值:*DEV,*NO(不压缩),*YES(压缩),*LOW(低压),*MEDIUM(中压),*HIGH(高压)

TGTRLS参数:版本,值:*CURRENT(当前版本),*PRV(),V5R4M0,V6R1M0,V7R1M0

OUTPUT参数:输出,值:*NONE(不输出),*PRINT(将备份过程输出到打印机),*OUTFILE(输出到文件)。

SAVACT参数:备份方式,值:*NO,*LIB,*SYNCLIB,*SYSDFN。

1。*NO表示不启用save active方式备份;
2。*LIB、*SYNCLIB、*SYSDFN都是针对备份多个LIB时而发挥作用,对于备份单个LIB,*LIB和*SYNCLIB几乎没有什么区别。

3。*LIB和*SYNCLIB是备份多个LIB时采用一个同步时间点进行判断备份,而*SYSDFN是备份多个LIB时系统自动采用多个同步时间点来进行判断备份。那*LIB和*SYNCLIB之间有什么区别呢?请看下文。
4。*LIB表示当同时备份多个LIB时,只采用一个同步时间点备份,但无法保证同时备份的多个LIB能够同步备份,如果备份的LIB之间存在关联,采用*LIB方式很容易造成备份的数据存在问题。
而*SYNCLIB表示同时备份多个LIB时,也是只采用一个同步时间点进行备份,但备份时能够使多个LIB进行数据同步,这样即使这些备份的LIB存在关联,也是能够成功的。
5。*SYSDFN表示备份多个LIB时系统采用过个同步时间点进行同步备份,特别适合所备份的LIB之间存在关联情况。
6。由此可见,如果我们想让多个active library备份成功,选择的参数不应该选*lib,而应该选择*SYSDFN成功率更高,因为*SYSDFN提供了多个同步时间点去扫描系统LIB当前的状态,比如17:00为第1个同步时间点,17:10为第2个同步时间点,17:20为第3个同步时间点;当然同时我们也可以适当修改save active wait time参数增大备份延续时间。
7。由此,我们可以深刻体会SAVACT参数和save active wait time参数这2个参数配合起来实施“联机备份”的意义所在。
银行、保险部门在实时备份数据机制方面尤其突出,特别是银行,更常使用后面2个参数来执行数据备份(*SYNCLIB、*SYSDFN);但是话说回来,由于银行的交易数据太大,单纯采用SAVLIB根本无法满足24小时联机备份机制,所以银行目前采用的是利用MIMIX、OMS、DataMirror等第三方商业软件利用"JOURNAL RECEIVE"同步原理来进行24小时联机备份。

 

举例:

SAVLIBLIB(mzgjj) DEV(*SAVF) SAVF(dbbackup/mzgjj) DTACPR(*MEDIUM)  OUTPUT(*PRINT)

4.将备份文件拷贝到磁带机TAP01中

命令:SAVSAVFDTA SAVF(备份目录名/备份文件名) DEV(TAP01)

举例:SAVSAVFDTA SAVF(dbbackup/mzgjj)DEV(TAP01) (注:系统自动分配标号)

 

4.将备份文件拷贝到其他电脑上(FTP方式)

命令:

cd  库名          //进入指定的文件夹,即库名

lcd目标位置名        //指定目标文件存放的位置,如:e盘

bin            //以二进制方式传输文件

get  源文件名        //将源文件复制到lcd命令指定的目标位置下

mget源文件名        //一次性将多个源文件复制到lcd命令指定的目标位置下

举例:

ftp192.168.0.5

         用户名:QSECOFR

         密码:QSECOFR

cddbbackup

lcde:\

bin

getmzgjj

或者:mgetmz*     //将当前目录下以mz*开头的文件全部复制到目标位置下

 

二、自动备份数据库

说明:在主机上进行备份。每周一个循环,每天一个savf。在操作系统中运行7个定时备份作业(job)。每周一,由系统管理员用ftp将7个savf传到pc机,并修改文件名加上日期。

savf命名规则:Week1~Week7

1.   创建备份目录名和文件名

crtlib weekbak

crtsavf weekbak/week1

crtsavf weekbak/week2

crtsavf weekbak/week3

crtsavf weekbak/week4

crtsavf weekbak/week5

crtsavf weekbak/week6

crtsavf weekbak/week7

2.   建立定时备份作业(job)

输入WRKJOBSCDE,按回车。  再按F6添加作业,添加作业名savweek1,用于在每周一的晚上23:30:00分时,备份数据库到(WEEKBAK/WEEK1)。备份命令为:

注意schedule time里的单引号是系统自动生成的,在输入时,直接输入23:40:00即可。

SAVLIB LIB(MZGJJ) DEV(*SAVF)SAVF(WEEKBAK/WEEK1) CLEAR(*ALL) DTACPR(*MEDIUM) OUTPUT(*PRINT)

*WEEKLY

*NONE

23:00:00

 

磁带备份:

将savf备份到磁带中,命令为

Savlib weebbak 

SAVLIB  WEEKBAK   TAP01    回车即将WEEKBAK目录中的文件都备份到磁带。

从磁带中取文件出来

RSTLIB  WEEKBAK   TAP01

 

三、还原数据库

1.创建还原用户、还原库、备份文件

建还原用户:使用“iSeries导航器”创建还原用户

建还原库:create   SCHEMA  还原库名(带日志)

或使用“iSeries导航器”创建还原库(注意,请使用还原用户进入导航器)。

建备件文件:

命令:crtsavf备份目录名/备份文件名

举例:CRTSAVF dbbackup/mzgjj

 

2.上传还原文件

注意:如果使用第三方工具上传文件,应先将本地的源文件名加上savf扩展名。

命令:

cd  库名          //进入指定的文件夹,即库名

lcd本地位置   //指定源文件存放的位置,如:e盘

bin            //以二进制方式传输文件

put源文件名  //将源文件复制到cd命令指定的目标位置下

mput源文件名        //一次性将多个源文件复制到cd命令指定的目标位置下

举例:

ftp 192.168.0.5

         用户名:QSECOFR

         密码:QSECOFR

cd dbbackup

lcd e:\

bin

put mzgjj

或者:mput mzgjj*         //将当前目录下以mzgjj开头的文件全部复制到目标位置下

 

3.从备份文件中将数据库还原到指定的数据库中

命令:rstlibsavlib(源数据库名) dev(*savf) savf(备份目录名/备份文件名) RSTLIB(目的数据库名) ALWOBJDIF(*ALL) MBROPT(*ALL)

参数说明:

 

举例:RSTLIB SAVLIB(bcgjj) DEV(*SAVF) SAVF(dbbackup/bc20101118)RSTLIB(bctest)

RSTLIB SAVLIB(ZJGJJ) DEV(*SAVF)SAVF(BACK/ZJWEEK4) RSTLIB(ZJTEST) OUTPUT(*PRINT)

RSTLIB SAVLIB(BCGJJ) DEV(*SAVF)SAVF(BACK/BC20121114) RSTLIB(BCGJJ) OUTPUT(*PRINT)

RSTLIB SAVLIB(MMGJJ) DEV(*SAVF)SAVF(BACK/MM121225) RSTLIB(MMGJJ) OUTPUT(*PRINT)

RSTLIB SAVLIB(MMGJJ) DEV(*SAVF)SAVF(BACK/MM121225) RSTLIB(MMTEST) OUTPUT(*PRINT)

RSTLIB SAVLIB(MMGJJ) DEV(*SAVF)SAVF(BACK/WEEK3) RSTLIB(MM1212) OUTPUT(*PRINT)

RSTLIB SAVLIB(MZGJJ) DEV(*SAVF)SAVF(DBBACKUP/MZGJJ) RSTLIB(MZTEST) OUTPUT(*PRINT) ALWOBJDIF(*ALL) MBROPT(*ALL)

RSTLIB SAVLIB(ZJGJJ) DEV(*SAVF) SAVF(BACK/ZJ20131016)RSTLIB(ZJGJJ) OUTPUT(*PRINT) ALWOBJDIF(*ALL) MBROPT(*ALL)

 

3.从磁带机TAP01中将指定的数据库文件标号还原到指定的数据库中

命令:rstlibsavlib(源数据库名) dev(tap01) seqnbr(文件标号:在1-16777215之间) RSTLIB(目的数据库名)

举例:RSTLIB SAVLIB(bcgjj) DEV(tap01) seqnbr(6) RSTLIB(bctest)

4.更改所有者

命令:CHGOWN OBJ(路径) NEWOWN(新的所有者名) SUBTREE(*ALL)

举例:CHGOWN OBJ('/QSYS.LIB/MZTEST.LIB/*') NEWOWN(MZTEST) SUBTREE(*ALL)

5.更改日志

6.更改存储过程、函数

主要是更改他们的DFTRDBCOL参数(缺省关系数据库集合);值改为:*NONE,表示不指定此参数的值。

因存储过程、函数中使用表的方法为:集合.表。其中集合指DFTRDBCOL参数指定的集合,可以理解为模式或数据库。

 

AS400日常命令

显示设备信息

dspsavf库名/备份设备名

dsptapdev(tap01) seqnbr(6) data(*labels)      //显示tap01中指定文件号的详细信息

dsptapdev(tap01) seqnbr(6) data(*savrst)     //显示tap01中指定文件号的内容

1. 检查正在运行的JOB

命令:WRKACTJOB
然后找到你要查看的JOB, 然后在该JOB最左边输入5,然后回车,输入10然后回车就可以查看该JOB的详细信息了。

2. 如何结束一个JOB

命令:WRKACTJOB
找到你要结束的JOB, 然后在该JOB最左边输入4,然后按回车就可以结束该JOB

3. 查看表的锁

1)        WRKOBJLCK:查看由所有任务在一个对象上使用的LOCK。

命令:WRKOBJLCK OBJ(库名/表的短名称) OBJTYPE(*FILE)

举例:WRKOBJLCK OBJ(BCGJJ/Q_GRMX) OBJTYPE(*FILE)

2)        DSPRCDLCK(DISPLAYRECORD LOCKS):查看一个物理文件中已锁定的记录。

3)        DSPJOB:查看一个任务的所有外部锁,包括已使用的那些锁和该任务正等待使用的那些锁。

 

 

 

0 0
原创粉丝点击