华为GaussDB数据库的手动备份与还原操作介绍

数据库的备份以A机上的操作为例。

1、使用linux的root用户登录到GaussDB服务器。

2、用以下命令切换到 GaussDB 管理员用户,其中,omm 为当前数据库的linux账号。

bash 复制代码
su - omm

3、执行gs_dump命令进行数据库备份:

这里使用gs_dump命令进行备份,在执行该命令前,可能会报一些动态链接库的错误,这些错误基本上是/usr/lib64下没有相应的软链接导致,可以用以方式先把软链接建好

(**特别注意:**这里只是举例,你需要根据自己实际的问题来解决无法找到动态链接库的问题):

bash 复制代码
ln -s /gsdata/usr/local/core/app_8db8eac8/bin/script/gspylib/clib/libssl.so /usr/lib64/libssl.so
ln -s /gsdata/usr/local/core/app_8db8eac8/bin/script/gspylib/clib/libcrypto.so /usr/lib64/libcrypto.so
ln -s /gsdata/usr/local/core/app_8db8eac8/lib/libpq_ce.so.5.5 /usr/lib64/libpq_ce.so.5.5
ln -s /gsdata/usr/local/core/app_8db8eac8/lib/libcjson.so.1 /usr/lib64/libcjson.so.1
ln -s /gsdata/usr/local/core/app_8db8eac8/lib/libcom_err.so.3 /usr/lib64/libcom_err.so.3

动态链接库的问题解决后,执行以下命令就可以完成数据库备份操作了。

这里是备份成tar格式,这种格式对目标文件大小有限制:

bash 复制代码
gs_dump -U user1 -W 123456 -f /gsdata/bak/orgdb_bak.tar -p 8000 orgdb -F t

如果数据库很大,官方建议用二进制文件进行备份,如下所示:

bash 复制代码
gs_dump -h 192.168.5.147 -p 8000 orgdb -Z 1 -v -F c -f /gsdata/bak/orgdb_bak.dump

数据库的还原:

以B机上的操作为例。

1、使用linux的root用户登录到GaussDB服务器;

2、用以下命令切换到 GaussDB 管理员用户,其中,omm 为当前数据库的linux账号

bash 复制代码
su - omm

3、执行以下命令进行数据库还原:

注意,将会还原到名为targetdb数据库的orgdb模式下,如果还原到模式名为targetdb下时,还要继续执行第4步。

bash 复制代码
gs_restore -p 8000 -d targetdb /gsdata/bak/orgdb_bak.tar
Password:

输入数据库的root用户的密码后,开始执行导入。输出以下信息表示还原结束:

bash 复制代码
WARNING:  The SQL statement for creating an index is too long! Current length is 6096
31500 SQL statements read in !
31600 SQL statements read in !
31700 SQL statements read in !
31800 SQL statements read in !
Finish reading 31800 SQL statements!
end restore operation ...
WARNING: errors ignored on restore: 6
restore operation successful
total time: 805534  ms
[omm@gaussdb148 ~]$

4、如果对还原的数据库需要改模式(schema)名称,则需要按以下步骤进行:

1)基于linux名为omm的用户,执行以下命令进入数据库命令行管理界面:

bash 复制代码
gsql -d targdb -p8000 -U root
Password for user root:

2)删除targdb数据库下名为targdb的模式名:

bash 复制代码
drop schema targdb;

3)将targdb数据库下名为orgdb的模式改为 targdb 模式名:

bash 复制代码
alter schema orgdb rename to targdb;

4)为应用程序访问targdb的数据库用户dbuser2分配该schema的权限(这里默认dbuser2有targdb数据库的权限,如是没有则先完成对数据库的权限分配,此处仅对schema授权进行说明):

bash 复制代码
GRANT USAGE ON SCHEMA targdb TO dbuser2;
GRANT CREATE ON SCHEMA targdb TO dbuser2 ;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA targdb TO dbuser2 ;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA targdb TO dbuser2;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA targdb TO dbuser2;
ALTER DEFAULT PRIVILEGES IN SCHEMA  targdb GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO dbuser2;
ALTER DEFAULT PRIVILEGES IN SCHEMA  targdb GRANT USAGE, SELECT ON SEQUENCES TO dbuser2;
ALTER DEFAULT PRIVILEGES IN SCHEMA  targdb GRANT EXECUTE ON FUNCTIONS TO dbuser2;

至此,dbuser2就可以访问 targdb 数据库的 targdb 模式了。

GaussDB的客户端访问工具:

可以使用DBeaver配合使用GaussDB的客户端JDBC驱动进行使用,GaussDB的客户端JDBC驱动下载地址:

https://download.csdn.net/download/runfarther/90539623

相关推荐
小云数据库服务专线8 小时前
GaussDB 应用侧报no pg_hba.conf entry for host处理方法
服务器·网络·gaussdb
小云数据库服务专线3 天前
GaussDB 应用侧报Read timed out解决方法
linux·服务器·gaussdb
小云数据库服务专线5 天前
GaussDB DN动态内存使用满导致DN主备切换
gaussdb
小云数据库服务专线6 天前
GaussDB 分布式下, 报错concurrent update under Stream mode is not yet support
gaussdb
Gauss松鼠会7 天前
【GaussDB】使用MySQL客户端连接到GaussDB的M-Compatibility数据库
数据库·mysql·gaussdb
clownAdam7 天前
gaussdb数据库的集中式和分布式
数据库·分布式·gaussdb
蒋士峰DBA修行之路13 天前
实验十八 GaussDB安全管理实验
gaussdb
蒋士峰DBA修行之路13 天前
实验二十一 GaussDB物理备份恢复
gaussdb
蒋士峰DBA修行之路14 天前
实验二十 GaussDB逻辑备份恢复实验
数据库·gaussdb
蒋士峰DBA修行之路15 天前
实验十九 GaussDB三权分立实验
gaussdb