centos7环境下:达梦DM8数据文件位置迁移

(一)、为什么要做数据文件的迁移??

   我个人认为存在一下两点原因:

   1、前期规划不合理导致数据量暴增的情况下,磁盘紧张、I/0增用,降低了数据性能

   2、数据文件所在磁盘老化、存在损坏的风险,为了数据存放更合理更安全

   3、达梦数据库默认机制是将大部分的数据库文件和数据库软件都放在一起,尤其是使用命令行初始化实例时,仅可以指定redo位置和控制文件的位置,其他均不能指定(我目前是发现这样的)

(二)、达梦DM8数据库实例下所有文件迁移

2.1、整个实例的数据文件

   也就是我们看到的实例目录下的文件,包含数据文件、控制文件、参数文件、配置文件等,将所有的数据文件均迁移到一个或者多块盘上,实现数据与DM数据库软件分离,规避硬件损坏丢失文件。

2.1.1、数据文件迁移到一块新的磁盘上

  将所有的数据文件均迁移到一块新挂载的盘上,优点实现了数据与软件系统分离保护,但是所有的数据均在一块磁盘上,一旦这块磁盘坏了,存在丢失数据的风险。

文件类型

迁移位置规划

控制文件

/data1/ctl/

数据文件

/data1/data/

参数文件

/data1/

其他文件(备份文件、配置文件等)

/data1/

2.1.2、数据文件迁移到多块新的磁盘上

  将所有的数据文件均迁移到多块新挂载的盘上,优点实现了数据与软件系统分离保护,并且多块盘可实现IO负载均衡,可以实现备份与其数据分离,更好的保护数据

文件类型

迁移位置规划

控制文件

/data1/ctl/

数据文件

/data2/data/

参数文件

/data2/

其他文件(备份文件、配置文件等)

/data3/

2.2、修改控制文件

   达梦控制文件包含了数据文件的相关信息,通过修改控制文件的数据位置的可以实现数据迁移。多个盘和一个盘迁移方式一样,所以我这里就做了一块盘的迁移,也就是实例所有的数据文件,我迁移到一块盘

#查询控制文件路径

select para_name,para_value from v$dm_ini where para_name='CTL_PATH'

#转换控制文件:因为控制文件二进制文件无法修改,需要转为可修改的文件

dmctlcvt type=1 src=/dm8/data/DMDATA/dm.ctl  dest=/data1/dm.txt   

#修改控制文件:

----控制文件中原数据路径

fil_path=/dm8/dmdbms/GRP1_RT_01/MAIN.DBF

fil_path=/dm8/dmdbms/GRP1_RT_01/SYSTEM.DBF

fil_path=/dm8/dmdbms/GRP1_RT_01/ROLL.DBF

fil_path=/dm8/dmdbms/GRP1_RT_01/GRP1_RT_0101.log

fil_path=/dm8/dmdbms/GRP1_RT_01/GRP1_RT_0102.log

fil_path=/dm8/dmdbms/GRP1_RT_01/MAIN.DBF

----控制文件中原数据路径

fil_path=/data1/data/MAIN.DBF

fil_path=/data1/data/SYSTEM.DBF

fil_path=/data1/data/ROLL.DBF

fil_path=/data1/data/GRP1_RT_0101.log

fil_path=/data1/data/GRP1_RT_0102.log

fil_path=/data1/data/MAIN.DBF

#完成修改控制文件后,需要转化回二进制的文件:将转换后的控制文件存放到新路径

dmctlcvt type=2 src=/data1/dm.txt  dest=/data1/ctl/dm.ctl

2.3、修改参数文件dm.ini

   当我们修改完控制文件后,并且把控制文件放入新路径,如果不修改dm.ini,那么启动数据库时,数据库将找不到相应的数据文件信息

----参数文件中原数据路径

#file location of dm.ctl

CTL_PATH       = /dm8/dmdbms/DMDATA/dm.ctl            #ctl file path

CTL_BAK_PATH  = /dm8/dmdbms/DMDATA/ctl_bak          #dm.ctl backup path

SYSTEM_PATH   = /dm8/dmdbms/DMDATA                  #system path

CONFIG_PATH    = /dm8/dmdbms/DMDATA                   #config path

TEMP_PATH      = /dm8/dmdbms/DMDATA                  #temporary file path

BAK_PATH   = /dm8/dmdbms/DMDATA/bak                  #backup file path

DFS_PATH    = $/DMDATA       #path of db_file in df

----参数文件中修改数据路径

CTL_PATH       = /data1/ctl/dm.ctl            #ctl file path

CTL_BAK_PATH  = /data1/ctl//ctl_bak          #dm.ctl backup path

SYSTEM_PATH   = /data1/data                 #system path

CONFIG_PATH    =  /data1/data                  #config path

TEMP_PATH      =  /data1/data                  #temporary file path

BAK_PATH   = /data1/data                  #backup file path

DFS_PATH    = $/DMDATA       #path of db_file in df

2.4拷贝数据文件

将数据文件迁移到对应的新路径下:

Cd  /dm8/dmdbms/DMDATA  

cp * /data1/data

Cd  /data1/data

mv dm.ctl  /data1/ctl

mv -r ctl_bak  /data1/ctl/ctl_bak

2.5、修改注册文件

注册文件是启停数据库,数据库均需要读取参数文件,当我们移动了参数文件后,如果不修改该注册文件,则启动失败,原因是在原来的位置找不到dm.ini文件,当然也可以重新注册一个服务,删掉这个服务也不是不可以。

vi /dm8/bin/DmServerDMDATA

----原参数:

DM_HOME="/dm8"

INI_PATH=" /dm8/dmdbms/DMDATA /dm.ini"

DCR_INI_PATH=%DCR_INI_PATH%

DPC_MODE=%DPC_MODE%

----修改后参数:

DM_HOME="/dm8"

INI_PATH=" /data1/data/dm.ini"

DCR_INI_PATH=%DCR_INI_PATH%

DPC_MODE=%DPC_MODE%

2.6、启动数据库并查询文件路径

--数据库启动成功说明迁移成功

Cd /dm8/dmdbms/bin

./DmServerDMDATA  start

[dmdba@dm8 bin]$ ./DmServiceDMDATA start

Starting DmServiceDMDATA:                                  [ OK ]

--为了确保数据位置已经成功迁移,查询如下:

Select * from dba_data_files;

/data1/data/SYSTEM.DBF 0 SYSTEM

/data1/data/user.dbf 0 USERS

/data1/data/MAIN.DBF 0 MAIN

/data1/data/TEMP.DBF 0 TEMP

//data1/data/ROLL.DBF 0 ROLL

Select * from v$dm_ini where  PARA_value like '%/%'

CTL_PATH     /data1/ctl/dm.ctl

CTL_BAK_PATH /data1/ctl/ctl_bak

SYSTEM_PATH   /data1/data

CONFIG_PATH   /data1/data

TEMP_PATH     /data1/data

BAK_PATH     /data1/data/bak

TRACE_PATH   /data1/data/trace

(三)、迁移业务数据文件(非系统关键文件)

  相比上述的整库的数据文件迁移方案,业务数据迁移往往相对较为灵活,且应用较为常见,一般迁移较多的是业务的数据文件,适合迁移部分系统非关键文件;同时也根据DM系统的特性,系统关键数据文件联机状态下,是不能脱机,因此关键数据文件不能使用ALTER TABLESPACE RENAME TO 方式进行迁移。

2.1、查询需要迁移的数据文件

本次我选择迁移表空间YWUSER数据文件作为测试

select * from dba_data_files;

/dm8/dmdbms/DMDATA/SYSTEM.DBF 0 SYSTEM

/dm8/ywuser02.dbf 1 YWUSER

/data2/ywuser01.dbf 0 YWUSER

/dm8/dmdbms/user.dbf 0 USERS

/dm8/dmdbms/DMDATA/MAIN.DBF 0 MAIN

/dm8/dmdbms/DMDATA/TEMP.DBF 0 TEMP

/dm8/dmdbms/DMDATA/ROLL.DBF 0 ROLL

2.1数据文件迁移

#将表空间脱机:如果不脱机就不能迁移,迁移会报错

alter TABLESPACE YWUSER  OFFLINE

----值得注意的是,迁移表空间文件,不需要提前把数据文件复制到新路径,在执行命令的时候,数据库会把文件复制到新路径

#迁移表空间文件1

alter TABLESPACE YWUSER RENAME DATAFILE '/data2/ywuser01.dbf' TO '/data1/data/ywuser01.dbf';

#迁移表空间文件1

alter TABLESPACE YWUSER RENAME DATAFILE '/dm8/ywuser02.dbf' TO '/data1/data/ywuser02.dbf';

#将表空间联机:如果不联机就不能使用该表空间,dba_data_files也查询不到

alter TABLESPACE YWUSER  ONLINE

2.3查询是否迁移成功

#进入服务新路径下查看数据文件

Cd /data1/data

ls -l

#使用达梦管理工具或者disql查询数据文件

Select * from dba_data_files;

2.4关键系统表空间的迁移问题

#SYSTEM表空间不能脱机:如果要迁移只能使用控制文件修改方法来迁移

ALTER  TABLESPACE SYSTEM  OFFLINE

#ROLL表空间不能脱机:如果要迁移只能使用控制文件修改方法来迁移

ALTER  TABLESPACE ROLL OFFLINE

#TEMP 表空间不能脱机:如果要迁移只能使用控制文件修改方法来迁移

ALTER  TABLESPACE TEMP OFFLINE

总结:系统关键表空间文件在联机状态下脱机,也就是不能使用ALTER TABLESPACERE RENAME TO 方式迁移数据文件,如果非要迁移,只能脱机修改控制文件,将数据迁移到新路径下,使用场景不同

----------------------------------------------------//到此结束//---------------------------------------------------

更多内容,请访问达梦社区地址:https:eco.dameng.com

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7中安装达梦数据库 8,你可以按照以下步骤进行操作: 1. 下载达梦数据库 8 的安装包: 前往达梦官方网站(https://www.dameng.com/)下载达梦数据库 8 的安装包。选择适用于 CentOS 7 的版本,并确保下载的是与你服务器架构(32位或64位)相匹配的版本。 2. 解压安装包: 在终端或命令行界面中,使用以下命令解压下载的安装包(假设下载的文件名为 `dameng-db-8.0.0.tar.gz`): ``` tar -zxvf dameng-db-8.0.0.tar.gz ``` 3. 进入解压后的目录: 使用以下命令进入解压后的达梦数据库安装目录: ``` cd dameng-db-8.0.0 ``` 4. 执行安装脚本: 运行安装脚本 `install.sh` 来执行达梦数据库的安装。在终端或命令行界面中,使用以下命令: ``` ./install.sh ``` 5. 按照提示进行安装: 安装脚本会提示一些配置选项,如安装路径、端口号、管理员密码等。根据实际需求进行配置,并按照提示完成安装过程。 6. 启动达梦数据库: 安装完成后,使用以下命令启动达梦数据库: ``` dmmysql start ``` 7. 验证安装: 运行以下命令验证达梦数据库的安装: ``` dmmysql -u <username> -p ``` 其中,`<username>` 是管理员用户名。输入管理员密码后,如果成功登录到达梦数据库的命令行界面,则表示安装成功。 完成以上步骤后,你就在CentOS 7上成功安装了达梦数据库 8。你可以根据需要进行进一步的配置和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值