Oracle导入导出
来源:互联网 发布:广州公交线路查询软件 编辑:程序博客网 时间:2024/06/03 20:57
前置条件:在Redhat7下安装并配置好Oracle,本文主要从新建用户,远程连接Oracle数据库,以及Oracle的导入导出三个方面进行阐释。
新建Oracle用户
命令如下:
sqlplus /nologconn /as sysdbastartupcreate user ynbytms identified by ynbytms
授权
粗授权:grant connect to ynbytms. grant resource to ynbytms
细授权:
1. select 'grant select on '|| tname ||' to rptuser ;' from tab;
(当前用户有dba权限如system或者sysdba,执行输出脚本)
2. select 'grant select on user.' || tname || ' to rptuser;' from tab;
(当前用户无dba权限也就是scott用户,用system或者sysdba用户执行输出脚本)
3. 执行输出脚本
远程连接Oracle数据库
安装pl/sql developer 客户端,安装步骤参见:http://blog.csdn.net/mr_li13/article/details/52226006
配置tnsnames.ora文件
MYTMS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.60.128 )(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DBDW) ) )
重新启动pl/sql developer进行连接,输入用户名密码之后,点击OK,出现TNS连接超时问题。
解决TNS连接超时
- 查看服务器连接是否连通
ping 192.168.60.128
- Linux下的数据库服务器的监听是否开启。
lsnrctl status
,如果没有开启则使用开启命令lsnrctl start
- 查看1521端口是否开放,两种方法:windows下通过telnet [服务器地址] [端口号] 查看;Linux 通过查看防火墙规则
sudo iptables -L -n
查看1521端口是否开放。
Linux开放端口
如果连接不上数据库服务,在排除其他线路,监听情况下,如果是服务器未开放端口,则需要开放端口。
1. 检查iptables状态 service iptables status
或者查看iptables 版本 iptables --version
2. 如果iptables不存在,则需要安装iptables .在root用户下键入命令 yum install iptables
,并设置开机启动systemctl enable iptables
3. 如果显示Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory. 则安装iptables-services,命令 yum install iptables-services
4. 键入规则 vim /etc/sysconfig/iptables
添加 -A INPUT -p tcp -m state –state NEW -m tcp –dport 1521 -j ACCEPT
5. 开机启动 systemctl enable iptables
6. 重新启动 service iptables restart
7. 查看防火墙规则 iptables -L -n
8. 用户pl/sql developer 进行连接,如果报TNS:无监听程序错误,由下面方法进行解决
解决无监听程序
- 查看监听运行情况
lsnrctl status
- 启动监听
lsnrctl start
- 重新用pl/sql developer 进行连接
现在已经能够成功从pl/sql developer远程连接到数据库了,下面讲述如何从之前的数据库中导出数据,并导入到新的数据库
Oracle数据库导入导出
导出数据库可以从 pl/sql developer Tool->export tables进行选择导出,也可以通过命令行进行导出,这里主要是用命令行进行导出和导入备份
导出命令
在windows下
exp 用户名/密码@源数据库地址:端口号/数据库实例 file=d:\backup\tmp.dmp tables=(表1,表2,…)
导入命令
imp 用户名/密码@目标数据库地址:端口号/数据库实例 file=d:\backup\tmp.dmp full=y
编码问题
遇到最坑的就是编码问题了,由于源数据库的编码和目标数据库的编码不一致,导致导入的数据中文显示错误,或者用中文作为查询条件无法成功,这里使用简单粗暴的解决方法如下:
1. 查看源数据库编码,在源数据库上执行 select * from sys.nls_database_parameters;
2. 查看目标数据库编码,在目标数据库上执行 select * from sys.nls_database_parameters;
3. 如果源数据库的NLS_CHARACTERSET和目标数据库的NLS_CHARACTERSET字段不一致,则修改目标数据库NLS_CHARACTERSET字段
修改目标数据库NLS_CHARACTERSET字段
在目标数据库服务器上执行
SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER SESSION SET SQL_TRACE=TRUE;SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;SQL> ALTER DATABASE OPEN;SQL> set linesize 120;SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;SQL> select * from v$nls_parameters;
其中ZHS16GBK是我的目标数据库上的NLS_CHARACTERSET字段
- 导出导入oracle数据库
- Oracle导入导出方法
- oracle导入导出
- Oracle--导入导出数据管理
- Oracle数据导入导出
- Oracle导入导出详解
- oracle导入导出问题
- oracle导入导出命令
- Oracle数据库导入导出
- oracle 导入/导出
- oracle导入导出命令
- Oracle数据导入导出
- ORACLE导入导出
- ORACLE导入导出参数
- ORACLE 数据库导入导出
- ORACLE 数据库导入导出
- Oracle数据导入导出
- Oracle导入导出命令
- batman-adv中OGM学习包代码处理流程
- POJ3258 什么东西过河?? 贪心+二分, 贪心的证明????
- HDU-6150 Vertex Cover(构造)
- zoj 3233 Lucky Number(容斥原理)
- python中join()函数详解
- Oracle导入导出
- 使用Handler实现打地鼠(下)
- 浅谈tcp cubic拥塞算法以及优化建议
- 203. Remove Linked List Elements
- django学习笔记(二)——mysql数据库
- 整理出来前端面试题 js篇
- 类,对象,属性,方法是什么
- 单片机汇编代码分析示例
- 罗素说理想与历程—幸福心灵的获取