zoukankan      html  css  js  c++  java
  • sybase数据迁移记录,记录迁移中的问题以及知识点(一)

    sybase必备技能

    1实例初始化(linux

    /sybase/ASE-15_0/init/sample_resource_files下存放了资源文件的模版,可以拷贝下面2个资源文件的模版进行修改。

    srvbuild.adaptive_server.rs    数据库主服务

    srvbuild.backup_server.rs      备份服务

    然后执行/sybase/ASE-15_0/bin/srvbuild  -r  资源文件的方式进行实例创建。

    实例创建后需要修改/sybase/ASE-15_0/sysam下的服务名.properties文件中PE和LT的值与/sybase/SYSAM-2.0/licenses/XXX.lic license文件中的一致。否则一个月试用期过后,数据库会无法启动。

    下面是个主服务资源文件的例子,绿色为需要修改的部分。

    sybinit.release_directory: USE_DEFAULT

    sybinit.product: sqlsrv

    sqlsrv.server_name: JXGYRSSD

    sqlsrv.sa_password: XXXXXXXX

    sqlsrv.new_config: yes

    sqlsrv.do_add_server: yes

    sqlsrv.network_protocol_list: tcp

    sqlsrv.network_hostname_list: 141.xx.xx.102

    sqlsrv.network_port_list: 6000

    sqlsrv.application_type: USE_DEFAULT

    sqlsrv.server_page_size: 16K

    sqlsrv.force_buildmaster: no

    sqlsrv.master_device_physical_name: /database/rssddata/master.dat

    sqlsrv.master_device_size: 370

    sqlsrv.master_database_size: 240

    sqlsrv.errorlog: /sybase/ASE-15_0/install/JXGYRSSD.log

    sqlsrv.do_upgrade: no

    sqlsrv.sybsystemprocs_device_physical_name: /database/rssddata/sysprocs.dat

    sqlsrv.sybsystemprocs_device_size: 220

    sqlsrv.sybsystemprocs_database_size: 220

    sqlsrv.sybsystemdb_device_physical_name: /database/rssddata/systemp.dat

    sqlsrv.sybsystemdb_device_size: 120

    sqlsrv.sybsystemdb_database_size: 120

    sqlsrv.tempdb_device_physical_name: /database/rssddata/tempdb.dat

    sqlsrv.tempdb_device_size: 220

    sqlsrv.tempdb_database_size: 220

    sqlsrv.default_backup_server: JXGYRSSD_BS

    下面是个备份服务资源文件的例子,绿色为需要修改的部分。

    sybinit.release_directory: USE_DEFAULT

    sybinit.product: bsrv

    bsrv.server_name: abcd_bs

    bsrv.new_config: yes

    bsrv.do_add_backup_server: yes

    bsrv.do_upgrade: no

    bsrv.network_protocol_list: tcp

    bsrv.network_hostname_list: 192.168.70.137

    bsrv.network_port_list: 5001

    bsrv.language: USE_DEFAULT

    bsrv.character_set: USE_DEFAULT

    bsrv.tape_config_file: USE_DEFAULT

    bsrv.errorlog: USE_DEFAULT

    #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE

    2、数据库修改字符集

    1.安装utf8字符集到数据库

    cd /sybase/charsets/utf8/

    charset -SJXGYTJ -Usa -PXXXXXXXX binary.srt utf8

    2.修改数据库字符集为utf8

    isql -SJXGYTJ -Usa -PXXXXXXXX -w2000

    1> sp_configure 'default character set id',190

    2> go

    3.重启数据库,数据库修改字符集成功后会自动关闭

    4.启动数据库,检查服务器端字符集

    isql -SJXGYTJ -Usa -PXXXXXXXX -w2000

    1> sp_helpsort

    2> go

    3、数据库设备创建

    disk init name = '数据设备名’,physname = '/设备文件路径/数据设备文件名', size = '大小'

    disk init name = '日志设备名’,physname = '/设备文件路径/日志设备文件名', size = '大小'

    4、数据库库创建

    create database 库名 on 数据设备='大小' log on '日志设备’='大小'

    5、数据库扩段空间

    alter database on 数据设备= '大小'

    alter database log on 日志设备= '大小'

    6、数据库备份

    dump database 库名 to '/备份路径/备份文件名'

    7、备份有效性验证方法

    load database ABC from '/备份路径/备份文件名' with headeronly

     

    此命令并不真正进行load操作,只是读取一下备份文件头,可以用来验证备份是否可用。

     

    8、数据库全库备份(拼SQL实现全库备份)

    1.先写出2个备份的命令

    dump database master to  '/backup/master.dmp'

    dump database JCSZ     to  '/backup/JCSZ.dmp'

    可以看到除了库名部分,其他部分为固定字符串。而所有库的库名可以从通过select name from master..sysdatabases查询得到。

    2.因此将不变的部分,用引号引起来(注意单双引号不要冲突),变量部分用查询语句从系统表中查询得到。char(10)表示回车

    select "dump database "+name+" to '/备份路径/"+name+".dmp'"+char(10)+'go' from master..sysdatabases

    9、数据库库备份单张表的方法(sqldbx/select * into/bcp

    1.SqlDbx导出单张表成insert语句

    2.select * into 表名_bak from 表名

    会自动创建一个叫表名_bak的表,同时插入数据。执行这个select * into命令的前提是备份表所在库要求开启'select into/bulkcopy/pllsort'属性。

    可以通过sp_helpdb查看status的值。

    同时可以通过下面命令开启

    sp_dboption JCSZ ,'select into/bulkcopy/pllsort',true

    3.bcp导出的方式备份

    YWST..T_MS_AJ导出到C:T_MS_AJ.bcp文件

     bcp YWST..T_MS_AJ out c:T_MS_AJ.bcp -Utusc99 -P 99csut -c -t"<!!>" -r"<~~>" -T 20971520 -Jutf8 -S np -b 1000 -e C:errorlog

    C:T_MS_AJ.bcp中备份的数据导入恢复到YWST..T_MS_AJ表(导入不会删除表内已有数据,因此若恢复数据,需手动truncate表的数据)

     bcp YWST..T_MS_AJ in  c:T_MS_AJ.bcp -Utusc99 -P 99csut -c -t"<!!>" -r"<~~>" -T 20971520 -Jutf8 -S np -Y    -b 1000

    -t每一列分隔符

    -r每一行分隔符

    -J导入时需要设置为服务器端字符集

    -b是指每次导入多少行数据,不设置数据量大时,会导致数据库日志段满的问题。

     

    10、数据库单个库的恢复

    load database 库名 from '/备份路径/备份文件名'

    go

    online datbase 库名

    go

     

    11、数据库单个表的恢复

    以恢复YWST中的T_MS_DSR的数据为例,说明步骤

    1. 建立临时设备,大小与原库一致

    disk init name = 'TEMP1,physname = '/database/TMP_DATA', size = '100M'

    disk init name = 'TEMP2,physname = '/database/TMP_LOG', size = '100M'

    1. 建立临时库YWST_TEMP

    create database YWST_TEMP on TEMP1=100 log on TEMP2=100

    1. load恢复YWST的备份到YWST_TEMP库,并online

    load database YWST_TEMP from '/backup/YWST.dmp'

    go

    online database YWST_TEMP

    go

    1. 通过查询select * from YWST_TEMP..T_MS_DSR得到备份中的民事当事人表的数据,看情况进行全表恢复还是部分记录恢复。
    2. 删除YWST_TEMP

    drop database YWST_TEMP

    1. 删除建立的临时设备

    sp_dropdevice TEMP1

    go

    sp_dropdevice TEMP2

    go

    12、数据库检查备份服务状态的方法

    SYB_BACKUP…sp_who

    可以得到查询结果,表示备份服务正常。若报如下错误,则需要检查备份服务:

    Can't open a connection to site 'SYB_BACKUP'. See the error log file in the ASE

    boot directory.

    13、数据库更新统计值、整理碎片、清存储过程缓存任务计划的配置

    更新统计值的语法

    update all statistics 表名

    批量生成更新统计值语句

    select "update all statistics YYFZ.."+name+char(10)+"go" from YYFZ..sysobjects where type = 'U'

    go

    select "update all statistics YWST.."+name+char(10)+"go" from YWST..sysobjects where type = 'U'

    go

    select "update all statistics DB_ATY.."+name+char(10)+"go" from DB_ATY..sysobjects where type = 'U'

    go

    select "update all statistics JCSZ.."+name+char(10)+"go" from JCSZ..sysobjects where type = 'U'

    go

     

    整理碎片的语法

    reorg rebuild 表名

    批量生成整理碎片语句

    select "reorg rebuild YYFZ.."+name+char(10)+"go" from YYFZ..sysobjects where type = 'U'

    go

    select "reorg rebuild YWST.."+name+char(10)+"go" from YWST..sysobjects where type = 'U'

    go

    select "reorg rebuild DB_ATY.."+name+char(10)+"go" from DB_ATY..sysobjects where type = 'U'

    go

    select "reorg rebuild JCSZ.."+name+char(10)+"go" from JCSZ..sysobjects where type = 'U'

    go

    针对特大表如几千万数据量,通过reorg rebuild命令一个晚上很可能无法执行完,影响第二天的业务。则可以换成下面的命令,表示执行整理碎片操作480分钟,然后停止。下次再运行可以继续上一次进行整理,分多个晚上完成单个大表的碎片整理工作。

    reorg compact 表名 with resume, time=480

     

    清存储过程缓存命令如下,建议配置到计划任务中定期执行,每5分钟执行一次。可以有效避免存储过程缓存占满导致的数据库cpu100%问题。

    dbcc proc_cache(free_unused)

    14sybase 数据库查看blk阻塞锁、对应的进程、对应的应用及ip的方法

    sp_lock  结果集中搜索blk,找到进程号,spid列的值

    select program_name , ipaddr , * from master..sysprocesses where spid = 进程号

    15sybase 数据库通过进程号查看进程正在执行的SQL

    dbcc traceon(3604)

    go

    dbcc sqltext(进程号)

    go

    16sybase 数据库性能监控及参数使用情况监控

    sp_sysmon ’00:01:00’  性能监控

    sp_monitorconfig ‘all’  参数使用情况监控

    17sybase 各用户cpu使用情况监控

    sp_clearstats

    sp_reportstats  查询自上次执行sp_clearstats以来,各个数据库帐号使用的CPU占比情况。因此建议为每个应用建立单独的数据库帐号,这样可以得到每个应用所使用的数据库CPU占比情况。

  • 相关阅读:
    MyBatis 核心配置综述之 ResultSetHandler
    MyBatis 核心配置综述之 ParameterHandler
    MyBatis 核心配置综述之StatementHandler
    高等数学——手撕牛顿莱布尼茨公式
    用二分法优化动态规划——实现快速决策
    召回、精确、准确,这些让人头大的概念一文全讲清楚
    Python——详解__slots__,property和私有方法
    LeetCode50——一题学会快速幂算法
    Golang——详解Go语言代码规范
    spark——详解rdd常用的转化和行动操作
  • 原文地址:https://www.cnblogs.com/hebin-pc/p/13925263.html
Copyright © 2011-2022 走看看