oracle安装,远程连接,快速导入导出
2016-04-30 22:49
567 查看
这两天在找oracle的安装方法和远程连接方法,主要是为了使用sqlloader功能,特地做些笔记。
这里oracle版本选择oracle11gXE的版本,Oracle 11g XE 是 Oracle 数据库的免费版本,支持标准版的大部分功能,做为免费的 Oracle 数据库版本,XE 的限制是:
最大数据库大小为 11 GB
可使用的最大内存是 1G
一台机器上只能安装一个 XE 实例
XE 只能使用单 CPU,无法在多CPU上进行分布处理。
当然对于学习数据的人来说是没有问题的。
安装的过程中一切默认即可,要求输入密码作为system和sys或sysdba的密码时输入:abc123,简单好记。
打开命令行窗口,输入:
使用DBA角色登陆: 用户名
查看有哪些用户
先对hr用户解锁(使用hr作为日常数据库使用的用户,而不是sysDBA )
对hr用户修改密码为abc123:
下载地址是: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
下载后解压到D盘根目录,比如 D:\instantclient_11_2 ,并添加如下环境变量:
NLS_LANG :SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN :D:\instantclient_11_2
PATH :D:\instantclient_11_2
在instantclient_11_2目录下,新建监听文件tnsnames.ora,内容如下:
HOST是oracle主机地址,如果是本地就是127.0.0.1,如果是远程地址就写远程地址,SERVICE_NAME 是oracle的实例,oracleXE的默认实例是XE,完全版的默认实例是 ORCL。
为了方便,修改oracleXE的监听文件:
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora,内容和刚才的监听文件一样:
配置PLSQL
工具 –> oracle连接 –>
oracle主目录名:
OCI库:
保存后重启PLSQL ,输入账号密码,连接选择XE,normal方式。
load.ctl 文件,内容如下:
将数据文件也放到D:\sqlldr目录下,然后在cmd命令行执行
数据库名即 tnsnames.ora 文件中的 your_tns 。
也就是说,需要配置好 instantclient 客户端才能使用。更多详细参数说明请自行百度,网上很多。
首先创建123.sql文件,内容是查询sql语句。
然后在cmd中执行
hr,abc123@xe:分别是数据库用户,密码,和监听端口。
sqluldr2的使用方法可以通过cmd中输入sqluldr2查看。
默认是用逗号作为分隔符。有些帖子说可以对特殊字符转移,比如回车,逗号什么的,但是我没有成功。所以只能通过在sql语句中使用
来处理。
如果有什么朋友成功了,记得转告啊。
这里oracle版本选择oracle11gXE的版本,Oracle 11g XE 是 Oracle 数据库的免费版本,支持标准版的大部分功能,做为免费的 Oracle 数据库版本,XE 的限制是:
最大数据库大小为 11 GB
可使用的最大内存是 1G
一台机器上只能安装一个 XE 实例
XE 只能使用单 CPU,无法在多CPU上进行分布处理。
当然对于学习数据的人来说是没有问题的。
1.下载安装oracle11gXE
下载地址是:http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html安装的过程中一切默认即可,要求输入密码作为system和sys或sysdba的密码时输入:abc123,简单好记。
打开命令行窗口,输入:
sqlplus
使用DBA角色登陆: 用户名
system,密码
abc123
查看有哪些用户
select username from all_users;
先对hr用户解锁(使用hr作为日常数据库使用的用户,而不是sysDBA )
alter user hr account unlock;
对hr用户修改密码为abc123:
alter user hr identified by abc123;
2.安装instantclient客户端
连接远程oracle需要安装instantclient客户端,安装了instantclient也可以访问本地的oracle数据库,建议安装,因为python,R等其他程序访问oracle也是需要instantclient的。下载地址是: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
下载后解压到D盘根目录,比如 D:\instantclient_11_2 ,并添加如下环境变量:
NLS_LANG :SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN :D:\instantclient_11_2
PATH :D:\instantclient_11_2
在instantclient_11_2目录下,新建监听文件tnsnames.ora,内容如下:
your_tns = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )
HOST是oracle主机地址,如果是本地就是127.0.0.1,如果是远程地址就写远程地址,SERVICE_NAME 是oracle的实例,oracleXE的默认实例是XE,完全版的默认实例是 ORCL。
3.使用PLSQL Developer连接本地oracle
刚才已经安装了oracleXE,也安装了instantclient客户端,接下来是用PLSQL 连接了。为了方便,修改oracleXE的监听文件:
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora,内容和刚才的监听文件一样:
your_tns = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )
配置PLSQL
工具 –> oracle连接 –>
oracle主目录名:
D:\instantclient_11_2
OCI库:
D:\instantclient_11_2\oci.dll
保存后重启PLSQL ,输入账号密码,连接选择XE,normal方式。
4.使用PLSQL Developer连接远程oracle
连接远程oracle,只需要在instantclient_11_2客户端的tnsnames.ora里面增加新的连接参数即可。your_tns = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 你的远程IP)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 实例名) ) )
5. 快速导入数据到oracle
使用sqlloader的前提是,本地安装有oracle数据库,可以安装oracleXE版本,安装方法参考前面的内容。load.ctl 文件,内容如下:
OPTIONS (skip=1,rows=1000) -- sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行,rows表示每次提交的记录数 LOAD DATA INFILE ' D:\sqlldr\data_file.txt' --数据文件的位置 BADFILE 'c:\sqlldr\bad.txt' --坏文件的位置,导入失败的记录放在这里 TRUNCATE --操作类型,用 truncate table 来清除表中原有记录 INTO TABLE table_name -- 要插入记录的表 FIELDS TERMINATEd BY ',' -- 数据中记录用 "," 分隔 TRAILING NULLCOLS --表的字段,没有对应的值时允许为空 ( user_nbr --插入表对应的字段 , cust_id , is_low_tm , mob_stat , nbr_cnt , prod_kd_nbr , cust_name )
将数据文件也放到D:\sqlldr目录下,然后在cmd命令行执行
sqlldr userid=用户/密码@数据库名 control=D:\sqlldr\load.ctl log=D:\sqlldr\load.out
数据库名即 tnsnames.ora 文件中的 your_tns 。
也就是说,需要配置好 instantclient 客户端才能使用。更多详细参数说明请自行百度,网上很多。
6. 快速导出数据
快速导出数据需要用到sqluldr2,这是基于oci8接口编写的小工具,但是效果奇好,在全世界很多数据库使用人员都在使用。首先创建123.sql文件,内容是查询sql语句。
select * from jobs
然后在cmd中执行
sqluldr2.exe USER=hr/abc123@XE sql=123.sql head=yes FILE=D:\out_data.txt
hr,abc123@xe:分别是数据库用户,密码,和监听端口。
sqluldr2的使用方法可以通过cmd中输入sqluldr2查看。
默认是用逗号作为分隔符。有些帖子说可以对特殊字符转移,比如回车,逗号什么的,但是我没有成功。所以只能通过在sql语句中使用
REPLACE(REPLACE(REPLACE(COL,','),CHR(10)),CHR(13))
来处理。
如果有什么朋友成功了,记得转告啊。
相关文章推荐
- Oracle简单易用的表结构导出方法
- 关于在rhel6.5下安装oracle11g2
- 迁移mysql数据到oracle上
- linux下修改oracle数据库用户名称和密码
- 【翻译自mos文章】怎么获得Oracle Database 12c中的audit session id
- oracle SQL竖表转横表
- Oracle 12C高级压缩索引 Advanced Index Compression
- 关于Oracle 数据库中的sequence
- Oracle-dos命令下的常用语句
- oracle学习笔记 Oracle数据库及相关软件的启动和关闭 第二部分
- oracle学习笔记 Oracle数据库及相关软件的启动和关闭 第一部分
- oracle用户创建及权限设置及表空间
- oracle导入和导出,以及报错的处理包括高版本的dmp导入到低版本
- JAVA解析DBF文件导入到Oracle数据库中
- C++使用oracle的occi库操作oracle数据库
- C++访问Oracle数据库
- C++操作oracle数据库
- C++通过OCCI操作Oracle数据库详解
- Oracle基础 -- SQL *Plus基本用法
- ORACLE之sql语句优化