数据备份

data backups

前言

本手册对协同管理系统的数据备份相关事宜进行说明。如对手册存在疑问,可与致远互联的客户服务人员联系。

说明

协同系统的数据主要分为:非结构化数据、结构化数据(数据库)。

协同系统提供的S1支持PostgreSQL、MySQL数据库的备份,其他数据的备份建议采用专业的备份软件或数据库自身的备份方法定期备份。

以下章节展开说明主要的非结构化数据目录,以及各数据库自身的备份方法。

数据库备份与恢复

提醒

  • 定期做数据库备份;
  • 数据备份包分离存储;

PostgreSQL数据备份与恢复

PostgreSQL数据库的备份

启动【协同产品目录】/pgsql13.3/bin/pgAdmin3.exe;

在需要备份的数据库上右键,选择备份,如下图所示:

备份完成后的截图如下:

PostgreSQL数据库的恢复

数据库名字上右键—恢复,选择刚才备份的文件,即可恢复。

在恢复后的数据库中执行以下SQL:

DROP CAST IF EXISTS (SMALLINT AS BOOLEAN); DROP CAST IF EXISTS (BOOLEAN AS SMALLINT); CREATE CAST (SMALLINT AS BOOLEAN) WITH INOUT AS IMPLICIT; CREATE CAST (BOOLEAN AS SMALLINT) WITH INOUT AS IMPLICIT; DROP CAST IF EXISTS (VARCHAR AS SMALLINT); DROP CAST IF EXISTS (SMALLINT AS VARCHAR); CREATE CAST (VARCHAR AS SMALLINT) WITH INOUT AS IMPLICIT; CREATE CAST (SMALLINT AS VARCHAR) WITH INOUT AS IMPLICIT;

PostgreSQL 9.2.5导出

  • pgsql9.2.5\bin\pgAdmin3.exe连接数据库,选择数据库,单击备份

点击文件名后的“…”,格式选择无格式

选择好路径后,格式选择无格式,输入文件名,点击“创建”

编码选择UTF8,点击备份,显示“进程退出并返回0”导出完成

  • linux服务器命令行导出数据备份

pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)>/data/dum.sql

#use

[postgres@vmonline postgres]$pg_dump -h localhost -U postgres pgtest> ~/dum.sql

#特别注意:数据库名称:pgtest与’>’ 之间不能存在空格

pg_dump -f DDDDDD.sql -i -C -E UTF8 -n public -s -U portal -h localhost -W portal -i 是为了兼容数据库版本 -C 包括创建数据库的语句 -E 设定导出数据的编码 -n 是Scheme的名称 -U 是用户名称 -h 是数据库服务器的名称 -W 是用强制密码验证

PostgreSQL 13.3安装

获取V8协同管理软件安装程序,安装包内data/base目录下获取postgresql数据库安装压缩包。

Windous环境

1、解压压缩包pgsql13.3_win64.7z到postgresql数据库目标安装目录,如D:\Seeyon\A8C\pgsql13.3

2、使用管理员权限执行initdb_service.bat完成系统服务注册;

初始化完成后在data目录下

3、修改pg_hba.cof文件IPv4这一段,新增一行让所有ip登陆(有IP限制需求address段可以根据需求修改)trust不需要密码,md5需要密码(建议使用md5

4、修改postgresql.conf文件,listen_addresses 单引号内ip地址改为*并取消注释去掉前面的#,port也取消注释去掉前面的#,

listen_addresses = ‘*’

max_connections 参数可根据需求改大(如500、600);

shared_buffers = 4096MB物理内存除去其它服务占用设置为4G;

操作系统服务中,启动SeeyonPostgresql13.3服务即可启动数据库

Linux环境

1、添加用户

groupadd postgres

useradd -g postgres postgres

passwd Seeyon123

创建data文件夹

mkdir /usr/local/postgresql/data

把文件赋给postgres用户

chown -R postgres:postgres /usr/local/postgresql

添加环境变量

vi /etc.profile

添加如下内容,添加完成后source /etc/profile,使文件生效

export PATH=/usr/local/postgresql/bin:$PATH

export PGHOME=/usr/local/postgresql

export PGDATA=/usr/local/postgresql/data/

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib/

export PATH=$PGHOME/bin:$PATH:$HOME/bin

切换用户

su - postres

初始化数据库

cd /usr/local/postgresql/bin

initdb -D /usr/local/postgresql/data -E UTF-8 –locale=zh_CN.UTF-8

启动参数文件修改,同windous环境

启动postgres

pg_ctl -D /usr/local/postgresql/data -l logfile start

连接数据库

psql

PostgreSQL 13.3导入

在PostgreSQL13.3版本数据库pgAdmin 4\bin\pgAdmin4.exe上操作

选择所要还原的数据库右键,点击还原中

选中导出的sql文件角色,点击还原

Windows环境命令行导入

导入sql、out等sql文件

psql -d 数据库名 -h ip地址 -p 数据库端口 -U 用户名 -f 文件地址

linux环境命令行导入

psql -U postgres(用户名) 数据库名(缺省时同用户名) < /data/dum.sql

#use

[postgres@vmonline ~]$ psql -U postgres pgtest < ~/dum.sql

#pg_restore导入数据库

pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v “/root/us2010.backup”

#pg_restore恢复示例

pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v “/root/us2010.backup”

pg_restore [选项]… [文件名] -d, –dbname=名字 连接数据库名字 -v, –verbose 详细模式 -h, –host=主机名 数据库服务器的主机名或套接字目录 -p, –port=端口号 数据库服务器的端口号 -U, –username=名字 以指定的数据库用户联接 -w, –no-password 永远不提示输入口令 -W, –password 强制口令提示 (自动)

MySQL数据备份与恢复

MySQL数据的备份与恢复可手工采用mysqldump的方式备份/恢复,亦可采用S1的备份功能(仅针对集中部署的MySQL服务,请参考S1备份恢复章节)。

MySQL数据库的备份

  • 说明

    备份前,请先停止产品服务,以保证数据的完整性。

    • 备份命令示例

      mysqldump -uroot -p123456 -P3306 -h127.0.0.1 -E -R –single-transaction -B V50 >D:\backup\v50-2013.sql

    • 命令解释

-uroot:指定备份用户为root;

-p123456:指定用户的密码,其中123456为密码,需要输入正确的root用户密码;

-P3306:大写的字母P,指定mysql服务的端口,默认为3306;

-h127.0.0.1:指定mysql服务的地址,默认127.0.0.1;

-E:导出mysql的事件(events);

-R:导出mysql的存储过程及函数;

--single-transaction:此参数仅支持InnoDB引擎,此参数将锁表,为保持事务/数据一致性;

-B V50:指定导出的数据库名称,其中V50为数据库名称;

> D:\backup\v50-2013.sql:指定备份文件的物理路径及文件名;

  • 其他说明

执行mysqldump命令,Windows系统需进入mysql程序的bin目录,Linux系统需进入/usr/bin目录。

MySQL数据库的恢复

  • 说明

还原前,请确认当前数据库中与备份数据库名称一致的数据不再使用,恢复将覆盖对应数据库中的数据。

  • 还原命令示例
mysql -uroot -p123456 -P3306 -h127.0.0.1<D:\backup\v50-2013.sql
  • 命令解释

    -uroot、-p123456、-P3306、-h127.0.0.1:指定用户名、密码、端口、IP地址;

    < D:\backup\v50-2013.sql:指定恢复用sql文件的物理路径及文件名;

    • 其他说明

      执行mysql命令,在Windows系统需要进入mysql程序的bin目录,Linux系统需进入/usr/bin目录。

Oracle数据备份与恢复

Oracle数据的备份与恢复采用数据的导出导入方式。

Oracle数据库备份恢复步骤概述

  • 第一步:选用exp、expdp中其中一种数据导出方法(推荐使用expdp方式),备份出原A8-V5服务数据;
  • 第二步:在目标数据库服务器上新建一个与原服务名称一样的表空间及用户;
  • 第三步:将备份出的A8-V5数据拷贝到目标数据库服务器上,对目标数据库选用imp、impdp中其中一种数据恢复方法,导入备份出来的A8-V5数据;
  • 第四步:在A8-V5应用服务器上,打开A8-V5安装目录中的ApacheJetspeed\conf,使用【A8-V5应用配置工具】修改A8-V5的数据库链接地址,指向新的数据库;
  • 第五步:重新启动A8-V5服务。

imp/exp方式:

exp和imp是Oracle的工具程序,在成功安装了Oracle Client客户端后就可以执行imp或exp命令了。它们即可以在数据库客户端使用,也可以在数据库服务端使用。

Windows数据库服务器:

在Windows中打开命令提示符,或者在开始->运行中输入cmd,回车后进入命令提示符窗口,在命令行中执行如下格式语句(如下两种语句在Linux下格式相同):

  • 导入数据格式:imp <用户名>/<密码>@ <instance_sid> file=</路径/文件名>.dmp full=y
  • 导出数据格式:exp <用户名>/<密码>@ <instance_sid> file=</路径/文件名>.dmp

如下图所示为Windows下导出数据的格式:

注意:一定要记下A8-V5所使用的表空间名及用户名,方便在导入时创建表空间及用户。

在目标数据库服务器上创建好用户及表空间后,就可以使用imp命令导入备份出来的数据了。

如下图所示为Windows下导入数据的格式:

导入成功后,在命令行中会有如下提示:

Linux数据库服务器:

在Linux下打开终端(应用程序->系统工具->终端),在命令行中先用su - oracle命令切换至Oracle用户下(Oracle用户有写入权限的路径,否则导出会报错的),如下图:

导出数据文件的目录最好选择Oracle用户的目录,可以在切换到Oracle用户后使用pwd命令查看Oracle用户的主目录,如下图:

在Oracle用户下,才能使用imp或exp命令。

如下图所示为Oracle用户下导出数据格式:

成功导出后会有如下提示:

在目标数据服务器上创建相同名称的数据库表空间及用户后,可以使用imp命令导入数据(导入前必须在目标数据库服务器上创建与原数据库相同名称的表空间及用户)。

下图为导入数据格式:

导入成功后会有如下提示:

expdp/impdp方式:

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

Windows数据库服务器:

在Windows命令提示符下,用SQLPLUS命令登录sys用户,如下图所示:

执行如下语句,创建导出/导入目录,并授权:

create or replace directory dumpdir as ‘导出/导入路径’; grant read, write on directory dumpdir to scott;
  • 注:Scott用户不一定是在每个数据库中都存在的,只有在安装数据库的时候选择安装示例才有,并改成public用户。

执行格式及结果如下图所示:

在Sqlplus状态下输入exit,退出Sqlplus,在命令行中执行如下格式语句,执行导出、导入:

导出实例:expdp <用户名>/<密码>@<instance_sid> DIRECTORY = dumpdir DUMPFILE=<文件名>.dmp

导入实例:impdp <用户名>/<密码>@<instance_sid> DIRECTORY= dumpdir DUMPFILE=<文件名>.dmp

导出语句的格式如下图:

导入语句格式如下图(导入前必须在目标数据库服务器上创建与原数据库相同名称的表空间及用户):

Linux数据库服务器:

在Linux终端中输入su - oracle切换至oracle用户,用pwd命令查看oracle用户的目录,如下图:

用Sqlplus登录要导出数据的账户,如下图:

在Sqlplus命令行中执行如下语句,创建导出/导入目录,并授权:

create or replace directory dumpdir as ‘导出/导入路径’; grant read, write on directory dumpdir to scott;

执行结果如下图:

在Sqlplus中输入exit退出到oracle用户命令行中,在此命令行中执行如下格式导出、导入语句:

导出实例:expdp <用户名>/<密码>@<instance_sid> DIRECTORY = dumpdir DUMPFILE=<文件名>.dmp

导入实例:impdp <用户名>/<密码>@<instance_sid> DIRECTORY= dumpdir DUMPFILE=<文件名>.dmp

执行格式如下图所示:

导入格式(导入前必须在目标数据库服务器上创建与原数据库相同名称的表空间及用户):

SQLServer数据备份与恢复

物理备份方式

  • 第一步:停止数据库服务
  • 第二步:备份数据库对应的数据文件和日志文件,查看数据库的属性可以看到数据文件和日志文件的位置.如下图:

逻辑备份方式

打开SSMS管理工具,右键需要备份的数据库,选择任务->备份:

点击添加选择备份文件路径和名称:

点击确定,弹出备份完成:

QQ截图20210914143359

目录中生成备份文件:

QQ截图20210914144029

数据恢复过程

创建同名数据库,右键选择属性:

在选项中,修改限制访问为单用户(SINGLE_USER):

右键数据库选择任务->还原->文件和文件组:

源设备选择实际备份文件路径点击确定:

左上方选项中勾选覆盖现有数据库点击确定开始还原:

弹出“成功还原了数据库“a8””,代表还原成功,点击确定:

达梦数据备份与恢复

停止协同服务(注意,中间件需要一起停止,不要只停止应用)

达梦数据库备份方法,这里以模式导出为例:

Linux:

./dexp USERID=v80sp2_a82/Seeyon123456@localhost:5236 file=v80sp2_a82.dmp DIRECTORY=/home/dmdba/dmdbms/bin SCHEMAS=v80sp2_a82

Windows:

dexp.exe USERID=v80sp2_a82/Seeyon123456@localhost:5236 file=v80sp2_a82.dmp DIRECTORY=C:\Users\Administrator SCHEMAS=v80sp2_a82

参数说明:

dexp命令位于达梦数据库安装目录/bin目录下(注意,windows下名称为dexp.exe) USERID:数据库用户名/数据库密码@数据库服务ip:数据库服务端口

file:数据库备份文件导出名

DIRECTORY:数据库备份文件导出位于的目录

SCHEMAS:需要备份的数据库(即将要升级的数据库)模式名(一般与用户名一致)

达梦数据库恢复方法:

./dimp A8USER/qazPLM123 DIRECTORY=/data/ file=g6kong.dmp log=dm.import.log

用户名A8USER、密码qazPLM123、file=实际备份或恢复文件名称

如果用户存在数据,可在恢复语句的末尾添加此参数替换数据:table_exists_action=replace

./dimp A8USER/qazPLM123 DIRECTORY=/data/ file=g6kong.dmp log=dm.import.log table_exists_action=replace

连接数据库备份命令:

连接到控制台或者./dsql连接进入后输入此命令进行备份

backup database FULL BACKUPSET ‘/opt/data/DAMENG/bak/DB_DAMENG_FULL_2021_11_2_12_27’ COMPRESSED LEVEL 9;

全库恢复:

1、登录SYSDBA用户

2、在依次执行以下3个语句进行恢复

RESTORE DATABASE ‘/opt/data/OATEST/DAMENG/dm.ini’ FROM BACKUPSET ‘/opt/data/OATEST/DAMENG/bak/DB_DAMENG_FULL_2021_11_2_12_27’;

recover DATABASE ‘/opt/data/OATEST/DAMENG/dm.ini’ FROM BACKUPSET ‘/opt/data/OATEST/DAMENG/bak/DB_DAMENG_FULL_2021_11_2_12_27’;

recover DATABASE ‘/opt/data/OATEST/DAMENG/dm.ini’ update db_migc;

人大金仓数据备份与恢复

停止协同服务(注意,中间件需要一起停止,不要只停止应用)

人大金仓数据库备份方法:

Linux:

./sys_dump -h 127.0.0.1 -p 54321 -U SYSTEM -W SYSTEM -f /home/v5/seeyondump.dmp SEEYONV5

Windows:

sys_dump.exe -h 127.0.0.1 -p 54321 -U SYSTEM -W SYSTEM -f C:\Users\Administrator\seeyondump.dmp SEEYONV5

R6版本备份:(去掉-W参数,增加-d参数)

Linux:

./sys_dump -h 127.0.0.1 -p 54321 -U SYSTEM -f /home/v5/seeyondump.dmp -d SEEYONV5

Windows:

sys_dump.exe -h 127.0.0.1 -p 54321 -U SYSTEM -f C:\Users\Administrator\seeyondump.dmp -d SEEYONV5

参数说明:

sys_dump命令位于人大金仓安装目录/Server/bin目录(注意:windows操作系统名称为sys_dump.exe)

-h:数据库的ip

-p:数据库的端口

-U:数据库用户账户

-W:数据库用户密码

-f:备份文件的存储路径,以及名称

SEEYONV5:需要备份的数据库(即将要升级的数据库)

备份结束后备份文件会存放在/home/v5(根据-f中填写的而定)目录,名称为seeyondump.dmp(根据-f中填写的文件名而定)文件

-- 备份数据库命令举例

cd /home/kingbase/

sys_dump -Uv8xuser -Wv8xuserpass -f v8xdb.sql v8xdb

-- 导入数据库备份命令举例

cd /home/Kingbase

ksql -Uv8xuser -Wv8xuserpass -d v8xdb -f v8xdb.sql

神通数据备份与恢复

神通数据库备份方法:

注意:这里指从V8.0SP2 LTS之后的神通数据库,之前项目化支持的数据库请联系研发。

以模式导出为例:

./osrexp -usysdba/szoscar55 -h192.168.225.40 -dSEEYON level=schema file=/home/test.osr log=/home/oscar_dump_test.log schema=v81a82aas

参数说明:

osrexp命令位于神通数据库安装目录/bin目录下。

-u:后为用户名/密码

-h:指定数据库ip(可使用-p指定数据库端口)

-d:数据库名(实例名)

level:导出的类型

file:备份文件存放的目录

log:备份日志的存放的目录

schema:备份的模式名