页面“Oracle乱码”与“Oracle基础”之间的差异
(页面间的差异)
跳到导航
跳到搜索
docker>Evan |
小 (导入1个版本) |
||
第1行: | 第1行: | ||
− | = | + | =最常用的命令= |
− | + | <pre> | |
− | = | + | #login |
+ | su - oracle | ||
+ | [oracle@oracle-zimg-etc ~]$ sqlplus | ||
+ | Enter user-name: sys as sysdba | ||
+ | Enter password: | ||
+ | SQL> | ||
+ | |||
+ | |||
+ | 一、首先创建一个表空间intratest | ||
+ | |||
+ | create tablespace intratest datafile '/home/oracle/app/oradata/xtwl/intratest.dbf' size 5m autoextend on next 50m maxsize unlimited; | ||
+ | |||
+ | exp ztgo0203/Ztgo_456@xtwl file=0203.dmp owner=ZTGO0203 #导出 | ||
+ | imp ZTGO0816/ZTGO0816@xtwl file=0203.dmp fromuser=ZTGO0203 touser=ZTGO0816 #数据导入 xtwl数据库中 | ||
+ | so | ||
+ | |||
+ | |||
+ | ps:datafile可以通过查询视图v$dbfile获得:select * from v$dbfile; | ||
+ | 如下 /home/oracle/app/oradata/xtwl/ | ||
− | == | + | |
+ | 二、创建一个用户orauserxk。最好是dba权限。默认表空间是intratest | ||
+ | |||
+ | create user orauserxk identified by 1234 default tablespace intratest temporary tablespace temp; | ||
+ | grant connect,resource ,dba to orauserxk;</pre> | ||
+ | |||
+ | |||
+ | ==三、用imp命令导入== | ||
+ | ===导入新库=== | ||
<pre> | <pre> | ||
+ | #user is oracle so can user oracle user to imp root files touser full 这两个mode 只能有其中一个 一般是基于用户的 所以不要 full=y | ||
+ | shell >imp orauserxk/1234@xtwl file=./0203.dmp log=./imp.log fromuser=orauserxk touser=orauserxk ignore=y # | ||
+ | |||
+ | 一般用 fromusr and touser | ||
+ | imp ZTGO/ZTGO@xtwl file=./1023.dmp log=./log fromuser=zt touser=ZT </pre> | ||
+ | === 导入非新库=== | ||
+ | <pre> | ||
+ | ull=y ignore=y; 不然不成功 | ||
+ | |||
+ | imp ZTGO0/ZTGO0@xtwl file=./1023.dmp full=y ignore=y; | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ===oracle imp导入中文乱码=== | ||
+ | <pre> | ||
+ | 查看环境变量 echo $NLS_LANG | ||
+ | |||
+ | 查看数据库字符集 select userenv('language') from dual; | ||
+ | |||
SQL> select userenv('language') from dual; | SQL> select userenv('language') from dual; | ||
USERENV('LANGUAGE') | USERENV('LANGUAGE') | ||
---------------------------------------------------- | ---------------------------------------------------- | ||
− | AMERICAN_AMERICA.AL32UTF8 </pre> | + | AMERICAN_AMERICA.AL32UTF8 |
+ | |||
+ | 线上和开发环境看起来是一样的 | ||
+ | |||
+ | 如果二者不一致,修改其一使二者一致。 | ||
+ | |||
+ | 建议修改NLS_LANG,方便、简单、安全 | ||
+ | |||
+ | 修改NLS_LNAG,有两种方式 | ||
+ | |||
+ | 1,临时修改 在当前登录终端执行export NLS_LANG=XX (XX:表示数据库字符集) | ||
+ | |||
+ | 本地登录退出后失效 | ||
+ | 1 | ||
+ | 2,永久修改 修改.bash_profile,在文件中加入export NLS_LANG=XX (XX:表示数据库字符集) | ||
+ | |||
+ | 重新登录后永久生效 | ||
+ | 1 | ||
+ | 如果在设置环境变量的时候出现“XX: not a valid identifier”,检查XX中是否有空格,如果有空格要将XX用双引号包括。例如:export NLS_LANG=“SIMPLIFIED CHINESE_CHINA.ZHS16GBK” | ||
+ | </pre> | ||
− | == | + | |
+ | |||
+ | |||
+ | 数据库的字符集,与你导入的字符集一致吗? r如果不一致就会出现乱码情况 | ||
+ | |||
+ | [https://blog.csdn.net/fireofjava/article/details/53980966 Oracle导入sql文件数据,中文乱码问题解决方案] | ||
+ | |||
+ | |||
+ | [http://lydawen.iteye.com/blog/1310172 acle imp导入中文乱码] | ||
+ | |||
+ | ==四 exp 导出== | ||
+ | <pre> | ||
+ | #用户/密码@命名空间 | ||
+ | exp ztgo/Ztgo_6@xtwl file=1023.dmp owner=ZTGO0203 | ||
+ | </pre> | ||
+ | |||
+ | ==查看当前的所有数据库== | ||
+ | <pre> | ||
+ | select name from v$database; | ||
+ | select * from v$database; </pre> | ||
+ | |||
+ | ==备份单张表== | ||
<pre> | <pre> | ||
− | # | + | 备份单张表,同时包含主键索引。 |
− | + | 格式: | |
+ | exp userid=myuserName/password file=area20130613.dmp log=area20130613.log indexes=y compress=n tables=area; | ||
+ | eg: | ||
+ | #成功备份 备份目录 /home/evanbak 201810161445 | ||
+ | exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp indexes=y compress=n tables=USER_MONEY_LAST; | ||
− | + | exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp owner=ZTGO0203 log=USER_MONEY_LAST.log indexes=y compress=n tables=USER_MONEY_LAST; #这个有错呀 | |
− | |||
− | |||
− | |||
− | + | 恢复单张表。 | |
− | . | + | imp myuserName/password file=area20130613.dmp tables=area; |
+ | </pre> | ||
+ | =修改oracle的用户的密码= | ||
+ | ==普通用户== | ||
+ | <pre> | ||
+ | sqlplus / as sysdba | ||
+ | connect TGO0815/TGO0815 | ||
+ | ALTER USER TGO0815 IDENTIFIED BY TDB0926; | ||
</pre> | </pre> | ||
− | = | + | =查看表= |
+ | describe nchar_tst(nchar_tst为表名) # 哈哈 不是PT同学说的show tables | ||
+ | =查询表的大小和表空间的大小= | ||
+ | |||
+ | [https://blog.csdn.net/cosio/article/details/3978747 查询表的大小和表空间的大小] | ||
+ | ==system、sys、== | ||
+ | [http://blog.sina.com.cn/s/blog_13cc013b50102v5zu.html Oracle 用户、角色管理简介good] | ||
+ | |||
+ | [https://blog.csdn.net/psp0001060/article/details/50908295 修改oracle的system、sys、普通用户的密码] | ||
+ | |||
+ | [https://www.cnblogs.com/xd502djj/archive/2009/02/26/1398702.html oracle修改用户密码] | ||
+ | |||
+ | [http://blog.sina.com.cn/s/blog_13cc013b50102v62v.html Oracle 修改SYS、system用户密码 ] | ||
+ | |||
+ | [https://blog.csdn.net/cuker919/article/details/9084547 Oracle备份表exp和imp] | ||
+ | |||
+ | =see also= | ||
+ | |||
+ | |||
+ | [https://blog.csdn.net/xiangsir/article/details/8570480 Oracle 全库备份脚本] | ||
+ | |||
+ | |||
+ | [https://www.csdn.net/gather_2a/MtTaQg0sMzc5Ni1ibG9n.html oracle 全库 备份 导入] | ||
+ | |||
+ | [https://blog.csdn.net/HelloAnyone/article/details/46490091 RedHat5.4安装oracle11g] | ||
+ | |||
+ | [https://blog.csdn.net/Cow_cz/article/details/70229929?utm_source=blogxgwz1 oracle数据库数据导入导出步骤(入门)] | ||
+ | |||
+ | [https://blog.csdn.net/gnolhh168/article/details/6442808 oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)] | ||
+ | |||
+ | [https://blog.csdn.net/crave_shy/article/details/42291965 Oracle快速清除表数据] | ||
+ | |||
+ | [http://blog.51cto.com/7883830/1761699 oracle数据库删除数据的两种方式] | ||
+ | |||
− | |||
− | |||
− | [[category:oracle]] | + | [[category:ops]] [[category:db]] [[category:oracle]] |
2019年10月14日 (一) 13:52的最新版本
目录
最常用的命令
#login su - oracle [oracle@oracle-zimg-etc ~]$ sqlplus Enter user-name: sys as sysdba Enter password: SQL> 一、首先创建一个表空间intratest create tablespace intratest datafile '/home/oracle/app/oradata/xtwl/intratest.dbf' size 5m autoextend on next 50m maxsize unlimited; exp ztgo0203/Ztgo_456@xtwl file=0203.dmp owner=ZTGO0203 #导出 imp ZTGO0816/ZTGO0816@xtwl file=0203.dmp fromuser=ZTGO0203 touser=ZTGO0816 #数据导入 xtwl数据库中 so ps:datafile可以通过查询视图v$dbfile获得:select * from v$dbfile; 如下 /home/oracle/app/oradata/xtwl/ 二、创建一个用户orauserxk。最好是dba权限。默认表空间是intratest create user orauserxk identified by 1234 default tablespace intratest temporary tablespace temp; grant connect,resource ,dba to orauserxk;
三、用imp命令导入
导入新库
#user is oracle so can user oracle user to imp root files touser full 这两个mode 只能有其中一个 一般是基于用户的 所以不要 full=y shell >imp orauserxk/1234@xtwl file=./0203.dmp log=./imp.log fromuser=orauserxk touser=orauserxk ignore=y # 一般用 fromusr and touser imp ZTGO/ZTGO@xtwl file=./1023.dmp log=./log fromuser=zt touser=ZT
导入非新库
ull=y ignore=y; 不然不成功 imp ZTGO0/ZTGO0@xtwl file=./1023.dmp full=y ignore=y;
oracle imp导入中文乱码
查看环境变量 echo $NLS_LANG 查看数据库字符集 select userenv('language') from dual; SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 线上和开发环境看起来是一样的 如果二者不一致,修改其一使二者一致。 建议修改NLS_LANG,方便、简单、安全 修改NLS_LNAG,有两种方式 1,临时修改 在当前登录终端执行export NLS_LANG=XX (XX:表示数据库字符集) 本地登录退出后失效 1 2,永久修改 修改.bash_profile,在文件中加入export NLS_LANG=XX (XX:表示数据库字符集) 重新登录后永久生效 1 如果在设置环境变量的时候出现“XX: not a valid identifier”,检查XX中是否有空格,如果有空格要将XX用双引号包括。例如:export NLS_LANG=“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
数据库的字符集,与你导入的字符集一致吗? r如果不一致就会出现乱码情况
四 exp 导出
#用户/密码@命名空间 exp ztgo/Ztgo_6@xtwl file=1023.dmp owner=ZTGO0203
查看当前的所有数据库
select name from v$database; select * from v$database;
备份单张表
备份单张表,同时包含主键索引。 格式: exp userid=myuserName/password file=area20130613.dmp log=area20130613.log indexes=y compress=n tables=area; eg: #成功备份 备份目录 /home/evanbak 201810161445 exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp indexes=y compress=n tables=USER_MONEY_LAST; exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp owner=ZTGO0203 log=USER_MONEY_LAST.log indexes=y compress=n tables=USER_MONEY_LAST; #这个有错呀 恢复单张表。 imp myuserName/password file=area20130613.dmp tables=area;
修改oracle的用户的密码
普通用户
sqlplus / as sysdba connect TGO0815/TGO0815 ALTER USER TGO0815 IDENTIFIED BY TDB0926;
查看表
describe nchar_tst(nchar_tst为表名) # 哈哈 不是PT同学说的show tables