解决达梦数据库密码复杂性导致的数据导出问题 - 问题记录
问题描述
在使用达梦数据库时,遇到了以下问题:
- 密码过于复杂,无法进行数据库的导出备份操作。
- 数据库导出时存在表数据导出不全的情况。
本文旨在记录并解决这些问题的过程。
问题解决过程
问题1: 密码过于复杂导致无法导出备份
解决方法:
-
使用管理员账户连接到达梦数据库,并修改数据库密码为较简单的密码。
ALTER USER 用户名 IDENTIFIED BY "新密码";
-
确保新密码符合安全策略要求。
- 数据库导出后,将密码改回原密码。
问题2: 将导出库导入新建数据库用户,数据缺失
问题分析:排查发现用户会被锁定,怀疑是应用服务连接数据库的密码没有改掉,应用向数据库发送请求失败导致数据库用户被锁定。判断是该原因导致数据库数据导出时缺失。
解决办法:为了确保没有任何活动的数据库连接,停止所有连接到数据库的应用程序或请求。
--为用户解锁 ALTER USER 用户名 ACCOUNT UNLOCK; --查看用户锁定状态 SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = '用户名';
./dexp 用户名/密码@127.0.0.1:5236 file=导出库名.dmp log=exp.log
创建新用户并导入数据库
在本地创建一个新用户,并使用该用户的凭据,将刚刚导出的数据库导入到本地达梦数据库中。
--创建表空间 create tablespace tablespace_name datafile '/path/tablespace_name.dbf' size 5120 autoextend on next 1024; --创建用户并赋权 SQL> CREATE USER 用户名 IDENTIFIED by 密码 DEFAULT TABLESPACE tablespace_name; SQL> grant dba to 用户名;
--导入数据库 ./dimp userid=用户名/密码@127.0.0.1:5236 file="/path/导出库名.dmp" fromuser=原用户名 touser=用户名 log=/path/imp.log
验证结果
完成导入过程后,检查表数据、索引以及其他对象是否正确导入,确定数据信息完整。
删除验证库信息
--删除用户 DROP USER 用户名 CASCADE; --删除表空间 drop tablespace tablespace_name;
总结
通过修改数据库密码、停止应用程序连接、重新导出和导入数据库,成功解决了由于密码过于复杂、账号锁定导致无法进行数据库导出和导出数据缺失的问题。
本文来自博客园,作者:查拉图斯特拉面条,转载请注明原文链接:https://www.cnblogs.com/n00dle/p/17642788.html