达梦6数据库备份还原(物理还原)
一、 物理还原
数据库物理还原,即使用物理备份BAK文件还原数据库,还原到的目的数据库的建库参数要和原始数据库一致,包括页大小、簇大小、大小写敏感。
还原数据库时,要求当前对该数据库没有连接访问,可以通过关闭所有应用,或者修改达梦的端口号来实现,具体参见1.3节。
1.1 使用SQL语句还原
- 以系统管理员用户登录数据库./isqlSYSDBA/[email protected]@符号后为数据库的IP地址。
- 脱机所要还原的数据库SQL>ALTER DATABASE [数据库名] SET OFFLINE; 例:ALTER DATABASE EMS SET OFFLINE; 如果报错当前对象被占用,按照1.3中的方法确认数据库是否有连接访问。
- 还原数据库SQL>RESTORE DATABASE [数据库名] FULL FROM ‘备份文件绝对路径’; 例:RESTORE DATABASE EMS FULL FROM ‘/dbdata/dmdata/EMS_BAK1.bak’;
- 数据库联机SQL>ALTER DATABASE [数据库名] SET ONLINE;
1.2 使用达梦客户端还原
使用客户端进行还原,同样使用上面的方式进行还原,只是操作简单。
-
以SYSDBA登录到数据库后,脱机要还原的数据库。
成功脱机会弹出提示信息,如果报错“当前对象被占用”,按照1.3中的方法确认数据库是否有连接访问。 -
还原数据库
-
选择备份文件
-
还原完成后会给出提示信息
-
进行数据库联机
1.3 清除数据库访问
当数据库在脱机时,如果报错“当前对象被占用”,说明当前数据库连接中存在联机正在访问所要还原的数据库,通过以下方式查找相关数据库连接:
isql登录数据库:
./isqlSYSDBA/[email protected]
执行查询:
select * from v$session;
该查询会返回当前数据库中的连接信息,包含登录用户、登录的IP地址等信息,通过这些信息可以先关闭相应的连接再进行数据库脱机操作。
在某些情况下,可能不方便关闭所有的连接,此时我们可以通过修改数据库的访问端口号来拒绝应用对数据库的访问。修改达梦安装目录下bin/dm.ini文件,其中的PORT_NUM为数据库端口号,修改为其他值即可,如22345,重启数据库后参数生效。但是需要注意,此时访问数据库的端口后也要使用修改后的值,例如,使用isql登录数据库命令如下:
./isqlSYSDBA/[email protected]:22345