Print

[MVS]KINGBASE 恢复数据库到本机新目录

7小时前 发表

配置步骤

恢复数据库到本机新目录

实验内容:

在数据库服务器上将数据库和表空间 恢复到指定目录,并指定端口,实现一台机器启动两个数据库实例。

一、在原库创建表空间和对象

--1、创建目录并授权。

--2、创建表空间。

--3、在新建表空间中创建表并插入2行数据。

$ mkdir /home/kingbase/tbs01

$ chmod 700 /home/kingbase/tbs01

$ ksql test system

test=# CREATE TABLESPACE tbs01 LOCATION '/home/kingbase/tbs01';

test=# CREATE TABLE t04(id int,name text) TABLESPACE tbs01;

test=# INSERT INTO t04 VALUES(1,'ert'),(2,'vbn');

test=# SELECT * FROM T04;

二、在原库执行物理备份

--1、执行全量备份。

$ sys_rman --cOnfig=/backup/rman/sys_rman.conf \

  --stanza=kingbase \

  --archive-copy \

  --type=full backup

  

--2、查看备份集。

$ sys_rman --cOnfig=/backup/rman/sys_rman.conf --stanza=kingbase info

 

stanza: kingbase

    status: ok

    cipher: none

 

    db (current)

        wal archive min/max (V009R001C001B0025): 00000006000000000000001C/000000060000000000000021

        ……………………

        full backup: 20250418-185538F

            timestamp start/stop: 2025-04-18 18:55:38 / 2025-04-18 18:55:40

            wal start/stop: 000000060000000000000021 / 000000060000000000000021

            database size: 86MB, database backup size: 86MB

            repo1: backup set size: 86MB, backup size: 86MB

三、恢复备份到新的集簇目录中

--1、创建恢复所需要的目录并授权。

$ mkdir /home/kingbase/data01

$ mkdir /home/kingbase/tbs02

$ chmod 700 /home/kingbase/data01

$ chmod 700 /home/kingbase/tbs02

--2、恢复备份到新目录中。

$ sys_rman --cOnfig=/backup/rman/sys_rman.conf \

  --stanza=kingbase \

  --kb1-path=/home/kingbase/data01 \

  --tablespace-map=tbs01=/home/kingbase/tbs02 restore

  

四、修改新集簇下的监听端口并启动实例

--1、修改/data1中主配置文件的监听端口。

$ echo 'port=5555'>>/home/kingbase/data01/kingbase.conf

$ tail -1 /home/kingbase/data01/kingbase.conf

 

--2、指定新的数据库目录启动实例。

$ sys_ctl start -D /home/kingbase/data01

 

--3、测试使用system用户登录到新的实例中,并查看当前数据库和表空间所在目录。

 

[kingbase@kesv9 data01]$ ksql test system -p 5555

Type "help" for help.

 

test=# show port;

 port

------

 5555

(1 row)

 

test=# show data_directory;

    data_directory

-----------------------

 /home/kingbase/data01

(1 row)

 

test=# \db+

                                       List of tablespaces

    Name     | Owner  |       Location       | Access privileges | Options |  Size  | Description

-------------+--------+----------------------+-------------------+---------+--------+-------------

 sys_default | system |                      |                   |         | 68 MB  |

 sys_global  | system |                      |                   |         | 753 kB |

 sysaudit    | system |                      |                   |         | 24 kB  |

 tbs01       | system | /home/kingbase/tbs02 |                   |         | 16 kB  |

(4 rows)