最近用到从oracle的dmp文件中还原数据

admin 发表了文章 • 0 个评论 • 65 次浏览 • 2018-04-29 11:13 • 来自相关话题

由于没有这方面的资料,在网上搜集了一些,相信有以下这些资料,我们可以成功地将dmp文件用命令行的方式还原回去


在这里我用的是oracle10g的版本,我的机器是512内存的,运行oracle的web管理程序有一些困难,所以我选择通过命令行的方式,
以下我的安装完成后,oracle给出的报告


Enterprise Manager Database Control URL - (orcl) :
http://localhost:1158/em


数据库配置文件已经安装到 
E:/oracle/product/10.2.0,


同时其他选定的安装组件也已经安装到 
E:/oracle/product/10.2.0/db_1。


iSQL*Plus URL 为:
http://localhost:5560/isqlplus


iSQL*Plus DBA URL 为:
http://localhost:5560/isqlplus/dba

下面我们来看一看如何来完成这一任务

第一,启动服务,(如果数据库处于启动状态,那么略过这一步)

打开命令行执行以下语句
net start OracleServiceORCL
net start  OracleOraDb10g_home2TNSListener
net start OracleOraDb10g_home2iSQL*Plus

 

 
  以上方式是在windows服务中启动服务,当windows服务不能启动数据库实例的时候,应用以下的语句
  set oracle_sid=orcl
  oradim -startup -sid orcl

  sqlplus internal/oracle
  startup 
 

 

第二清理以前还原过的痕迹,如果我们在数据库曾经还原过,我们先来清理一下,痕迹,
    //删除用户
    drop user xxxx cascade; 
    //删除表空间
    drop tablespace xxxx;
    //删除数据库文件
    e:/xxxxxx.dbf


第三,接下来,准备工作做好后,我们就可以开始还原了
//创建用户
CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE  USERS TEMPORARY TABLESPACE TEMP
 
//给予用户权限
grant connect,resource,dba to xxxx
 

//创建表空间,并指定文件名,和大小
CREATE SMALLFILE TABLESPACE "xxxx" DATAFILE 'E:/ORADATA/ORCL/xxxx.DBF' 
 SIZE 100M 
 AUTOEXTEND ON NEXT 100M 
 MAXSIZE UNLIMITED 
 LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

 

//执行给予权限的脚本grant.txt,将权限给予刚才创建的用户
//给予权限
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
      DBA,CONNECT,RESOURCE,CREATE SESSION  TO xxxx


//开始导入(完全导入),file:dmp文件所在的位置, ignore:因为有的表已经存在,对该表就不进行导入。
   在后面加上 ignore=y 。指定log文件 log=e:/log.txt
imp user/pass@orcl full=y file=e:/xxx.dmp ignore=y log=e:/log.txt

//当我们不需要完整的还原数据库的时候,我们可以单独地还原某个特定的表
//---------------------------------------------------------------------------
imp user/pass@datbase file=e:/xxx.dmp ignore=y log=e:/log.txt tables=(xxxx)
imp user/pass@database file=e:/xxx.dmp ignore=y log=e:/log2.txt tables=(xxxx) 
//---------------------------------------------------------------------------

 

//做到这里我们就已经完成了,数据库的还原工作,下面我们就可以打开isqlplus查看表中的数据了
 
select * from ***
 

第四我们来看一下,对oracle常用的操作命令
1)查看表空间的属性
 select tablespace_name,extent_management,allocation_type from dba_tablespaces


2)查找一个表的列,及这一列的列名,数据类型
 select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns where TABLE_NAME='xxxx'

 
3)查找表空间中的用户表
 select * from all_tables where owner='xxx' order by table_name desc

4)在指定用户下,的表的数量
 select count(*) from user_tab_columns 
 

5)查看数据库中的表名,表列,所有列
 select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns order by table_name desc

6)查看用户ZBFC的所有的表名及表存放的表空间
 select table_name,tablespace_name from all_tables where owner='xxxx' order by table_name desc
7)生成删除表的文本
select 'Drop   table '||table_name||';' from all_tables where owner="ZBFC";

8)删除表级联删除
drop table table_name [cascade constraints];

9)查找表中的列
select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns where column_name like '%'||'地'||'%' order by table_name

desc 
 

10)查看数据库的临时空间
select tablespace_name,EXTENT_SIZE,current_users,total_extents,used_extents,MAX_SIZE,free_extents from v$sort_segment;

 http://download1.csdn.net/down ... 0.txt


作者在导入的过程中,还遇到了一个错误,就是数据违反了唯一性约束,数据库拒绝了数据
IMP-00019: 由于 ORACLE 的 1 错误而拒绝行
在网上看到有人说,这是字符集的原因,所以我就新建了一个数据库,将字符集改成了ZHS16GBK这样,从新导了一次,结果就成功了

 下面是grant.txt脚本 查看全部

由于没有这方面的资料,在网上搜集了一些,相信有以下这些资料,我们可以成功地将dmp文件用命令行的方式还原回去


在这里我用的是oracle10g的版本,我的机器是512内存的,运行oracle的web管理程序有一些困难,所以我选择通过命令行的方式,
以下我的安装完成后,oracle给出的报告


Enterprise Manager Database Control URL - (orcl) :
http://localhost:1158/em


数据库配置文件已经安装到 
E:/oracle/product/10.2.0,


同时其他选定的安装组件也已经安装到 
E:/oracle/product/10.2.0/db_1。


iSQL*Plus URL 为:
http://localhost:5560/isqlplus


iSQL*Plus DBA URL 为:
http://localhost:5560/isqlplus/dba

下面我们来看一看如何来完成这一任务

第一,启动服务,(如果数据库处于启动状态,那么略过这一步)

打开命令行执行以下语句
net start OracleServiceORCL
net start  OracleOraDb10g_home2TNSListener
net start OracleOraDb10g_home2iSQL*Plus

 

 
  以上方式是在windows服务中启动服务,当windows服务不能启动数据库实例的时候,应用以下的语句
  set oracle_sid=orcl
  oradim -startup -sid orcl

  sqlplus internal/oracle
  startup 
 

 

第二清理以前还原过的痕迹,如果我们在数据库曾经还原过,我们先来清理一下,痕迹,
    //删除用户
    drop user xxxx cascade; 
    //删除表空间
    drop tablespace xxxx;
    //删除数据库文件
    e:/xxxxxx.dbf


第三,接下来,准备工作做好后,我们就可以开始还原了
//创建用户
CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE  USERS TEMPORARY TABLESPACE TEMP
 
//给予用户权限
grant connect,resource,dba to xxxx
 

//创建表空间,并指定文件名,和大小
CREATE SMALLFILE TABLESPACE "xxxx" DATAFILE 'E:/ORADATA/ORCL/xxxx.DBF' 
 SIZE 100M 
 AUTOEXTEND ON NEXT 100M 
 MAXSIZE UNLIMITED 
 LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

 

//执行给予权限的脚本grant.txt,将权限给予刚才创建的用户
//给予权限
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
      DBA,CONNECT,RESOURCE,CREATE SESSION  TO xxxx


//开始导入(完全导入),file:dmp文件所在的位置, ignore:因为有的表已经存在,对该表就不进行导入。
   在后面加上 ignore=y 。指定log文件 log=e:/log.txt
imp user/pass@orcl full=y file=e:/xxx.dmp ignore=y log=e:/log.txt

//当我们不需要完整的还原数据库的时候,我们可以单独地还原某个特定的表
//---------------------------------------------------------------------------
imp user/pass@datbase file=e:/xxx.dmp ignore=y log=e:/log.txt tables=(xxxx)
imp user/pass@database file=e:/xxx.dmp ignore=y log=e:/log2.txt tables=(xxxx) 
//---------------------------------------------------------------------------

 

//做到这里我们就已经完成了,数据库的还原工作,下面我们就可以打开isqlplus查看表中的数据了
 
select * from ***
 

第四我们来看一下,对oracle常用的操作命令
1)查看表空间的属性
 select tablespace_name,extent_management,allocation_type from dba_tablespaces


2)查找一个表的列,及这一列的列名,数据类型
 select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns where TABLE_NAME='xxxx'

 
3)查找表空间中的用户表
 select * from all_tables where owner='xxx' order by table_name desc

4)在指定用户下,的表的数量
 select count(*) from user_tab_columns 
 

5)查看数据库中的表名,表列,所有列
 select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns order by table_name desc

6)查看用户ZBFC的所有的表名及表存放的表空间
 select table_name,tablespace_name from all_tables where owner='xxxx' order by table_name desc
7)生成删除表的文本
select 'Drop   table '||table_name||';' from all_tables where owner="ZBFC";

8)删除表级联删除
drop table table_name [cascade constraints];

9)查找表中的列
select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns where column_name like '%'||'地'||'%' order by table_name

desc 
 

10)查看数据库的临时空间
select tablespace_name,EXTENT_SIZE,current_users,total_extents,used_extents,MAX_SIZE,free_extents from v$sort_segment;

 http://download1.csdn.net/down ... 0.txt


作者在导入的过程中,还遇到了一个错误,就是数据违反了唯一性约束,数据库拒绝了数据
IMP-00019: 由于 ORACLE 的 1 错误而拒绝行
在网上看到有人说,这是字符集的原因,所以我就新建了一个数据库,将字符集改成了ZHS16GBK这样,从新导了一次,结果就成功了

 下面是grant.txt脚本

oracle_RESTRICTED模式

admin 发表了文章 • 0 个评论 • 63 次浏览 • 2018-04-29 08:57 • 来自相关话题

开启限制会话模式:

alter system enable restricted session;
取消限制会话模式:
alter system disable restricted session;   

RESTRICTED模式以后  除了管理员都不能登录,如果需要非管理员登录,必须
GRANT restricted session to test;




那么以限制会话模式登入有两种方法:

一:正常登入数据库后执行alter system enable restricted session;




二:sqlplus  /nolog

       conn /as sysdba

      shutdown  immediate;

       startup  restrict




个人喜欢用第二种方法,第一种有的时候居然 alter system disable restricted session; 后无效。 查看全部
开启限制会话模式:

alter system enable restricted session;
取消限制会话模式:
alter system disable restricted session;   

RESTRICTED模式以后  除了管理员都不能登录,如果需要非管理员登录,必须
GRANT restricted session to test;




那么以限制会话模式登入有两种方法:

一:正常登入数据库后执行alter system enable restricted session;




二:sqlplus  /nolog

       conn /as sysdba

      shutdown  immediate;

       startup  restrict




个人喜欢用第二种方法,第一种有的时候居然 alter system disable restricted session; 后无效。

ORACLE 修改字符集 ZHS16GBK;

admin 发表了文章 • 0 个评论 • 58 次浏览 • 2018-04-29 08:56 • 来自相关话题

Windows PowerShell
版权所有 (C) 2009 Microsoft Corporation。保留所有权利

PS C:\Users\Administrator>  sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期日 4月

Copyright (c) 1982, 2010, Oracle.  All rights reserv

SQL> conn /as sysdba
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>  startup mount
ORACLE 例程已经启动。

Total System Global Area 5.4784E+10 bytes
Fixed Size                  2188768 bytes
Variable Size            2.6038E+10 bytes
Database Buffers         2.8723E+10 bytes
Redo Buffers               20566016 bytes
数据库装载完毕。
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> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集


SQL>  ALTER DATABASE character set INTERNAL_USE ZHS1
---跳过超级检查
数据库已更改。

SQL>  select * from v$nls_parameters;

PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

NLS_TERRITORY
CHINA

NLS_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_ISO_CURRENCY
CHINA

NLS_NUMERIC_CHARACTERS
.,

NLS_CALENDAR
GREGORIAN


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_DATE_FORMAT
DD-MON-RR

NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE

NLS_CHARACTERSET
ZHS16GBK


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_SORT
BINARY

NLS_TIME_FORMAT
HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16

NLS_COMP
BINARY

NLS_LENGTH_SEMANTICS
BYTE


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CONV_EXCP
FALSE


已选择19行。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>  startup
ORACLE 例程已经启动。

Total System Global Area 5.4784E+10 bytes
Fixed Size                  2188768 bytes
Variable Size            2.6038E+10 bytes
Database Buffers         2.8723E+10 bytes
Redo Buffers               20566016 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from v$nls_parameters;

PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

NLS_TERRITORY
CHINA

NLS_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_ISO_CURRENCY
CHINA

NLS_NUMERIC_CHARACTERS
.,

NLS_CALENDAR
GREGORIAN


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_DATE_FORMAT
DD-MON-RR

NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE

NLS_CHARACTERSET
ZHS16GBK


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_SORT
BINARY

NLS_TIME_FORMAT
HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16

NLS_COMP
BINARY

NLS_LENGTH_SEMANTICS
BYTE


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CONV_EXCP
FALSE


已选择19行。

SQL> alter system disable restricted session;
开启限制会话模式:
-----------------------------------------------------------------------------------
alter system enable restricted session;
取消限制会话模式:
alter system disable restricted session;   
  查看全部
Windows PowerShell
版权所有 (C) 2009 Microsoft Corporation。保留所有权利

PS C:\Users\Administrator>  sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期日 4月

Copyright (c) 1982, 2010, Oracle.  All rights reserv

SQL> conn /as sysdba
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>  startup mount
ORACLE 例程已经启动。

Total System Global Area 5.4784E+10 bytes
Fixed Size                  2188768 bytes
Variable Size            2.6038E+10 bytes
Database Buffers         2.8723E+10 bytes
Redo Buffers               20566016 bytes
数据库装载完毕。
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> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集


SQL>  ALTER DATABASE character set INTERNAL_USE ZHS1
---跳过超级检查
数据库已更改。

SQL>  select * from v$nls_parameters;

PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

NLS_TERRITORY
CHINA

NLS_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_ISO_CURRENCY
CHINA

NLS_NUMERIC_CHARACTERS
.,

NLS_CALENDAR
GREGORIAN


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_DATE_FORMAT
DD-MON-RR

NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE

NLS_CHARACTERSET
ZHS16GBK


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_SORT
BINARY

NLS_TIME_FORMAT
HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16

NLS_COMP
BINARY

NLS_LENGTH_SEMANTICS
BYTE


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CONV_EXCP
FALSE


已选择19行。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>  startup
ORACLE 例程已经启动。

Total System Global Area 5.4784E+10 bytes
Fixed Size                  2188768 bytes
Variable Size            2.6038E+10 bytes
Database Buffers         2.8723E+10 bytes
Redo Buffers               20566016 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from v$nls_parameters;

PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

NLS_TERRITORY
CHINA

NLS_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_ISO_CURRENCY
CHINA

NLS_NUMERIC_CHARACTERS
.,

NLS_CALENDAR
GREGORIAN


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_DATE_FORMAT
DD-MON-RR

NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE

NLS_CHARACTERSET
ZHS16GBK


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_SORT
BINARY

NLS_TIME_FORMAT
HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY



PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16

NLS_COMP
BINARY

NLS_LENGTH_SEMANTICS
BYTE


PARAMETER
----------------------------------------------------
VALUE
----------------------------------------------------
NLS_NCHAR_CONV_EXCP
FALSE


已选择19行。

SQL> alter system disable restricted session;
开启限制会话模式:
-----------------------------------------------------------------------------------
alter system enable restricted session;
取消限制会话模式:
alter system disable restricted session;   
 

oracle11g 修改字符集 修改为ZHS16GBK

admin 发表了文章 • 0 个评论 • 65 次浏览 • 2018-04-29 08:48 • 来自相关话题

1.cmd下,cd到oracle数据库软件的服务器端 如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN

2.输入set ORACLE_SID=你想进入的数据库的那个sid

3.输入 sqlplus /nolog

4.将数据库启动到RESTRICTED模式下做字符集更改: 

SQL> conn /as sysdba 

Connected. 

SQL> shutdown immediate; 

Database closed. 

Database dismounted. 

ORACLE instance shut down. 

SQL> startup mount 

ORACLE instance started. 

Total System Global Area  236000356 bytes 

Fixed Size                   451684 bytes 

Variable Size             201326592 bytes 

Database Buffers           33554432 bytes 

Redo Buffers                 667648 bytes 

Database mounted. 

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 

System altered. 

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 

System altered. 

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; 

System altered. 

SQL> alter database open; 

Database altered. 

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; 

ALTER DATABASE CHARACTER SET ZHS16GBK 



ERROR at line 1: 

ORA-12712: new character set must be a superset of old character set 

 

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: 

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 

Database altered. 

SQL> select * from v$nls_parameters; 

略 

19 rows selected. 

重启检查是否更改完成: 

SQL> shutdown immediate; 

Database closed. 

Database dismounted. 

ORACLE instance shut down. 

SQL> startup 

ORACLE instance started. 

Total System Global Area  236000356 bytes 

Fixed Size                   451684 bytes 

Variable Size             201326592 bytes 

Database Buffers           33554432 bytes 

Redo Buffers                 667648 bytes 

Database mounted. 

Database opened. 

SQL> select * from v$nls_parameters; 

alter system disable restricted session;    查看全部

1.cmd下,cd到oracle数据库软件的服务器端 如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN

2.输入set ORACLE_SID=你想进入的数据库的那个sid

3.输入 sqlplus /nolog

4.将数据库启动到RESTRICTED模式下做字符集更改: 

SQL> conn /as sysdba 

Connected. 

SQL> shutdown immediate; 

Database closed. 

Database dismounted. 

ORACLE instance shut down. 

SQL> startup mount 

ORACLE instance started. 

Total System Global Area  236000356 bytes 

Fixed Size                   451684 bytes 

Variable Size             201326592 bytes 

Database Buffers           33554432 bytes 

Redo Buffers                 667648 bytes 

Database mounted. 

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 

System altered. 

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 

System altered. 

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; 

System altered. 

SQL> alter database open; 

Database altered. 

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; 

ALTER DATABASE CHARACTER SET ZHS16GBK 



ERROR at line 1: 

ORA-12712: new character set must be a superset of old character set 

 

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: 

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 

Database altered. 

SQL> select * from v$nls_parameters; 

略 

19 rows selected. 

重启检查是否更改完成: 

SQL> shutdown immediate; 

Database closed. 

Database dismounted. 

ORACLE instance shut down. 

SQL> startup 

ORACLE instance started. 

Total System Global Area  236000356 bytes 

Fixed Size                   451684 bytes 

Variable Size             201326592 bytes 

Database Buffers           33554432 bytes 

Redo Buffers                 667648 bytes 

Database mounted. 

Database opened. 

SQL> select * from v$nls_parameters; 

alter system disable restricted session;   

安装sql之前怎么删除挂起

admin 发表了文章 • 0 个评论 • 64 次浏览 • 2018-04-28 14:58 • 来自相关话题

1)添加/删除程序中彻底删除sql server。 2)将没有删除的sql server目录也删除掉。 3)打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目。 4)删除注册表中跟sql server相关的键。 ? ? 将以下两个从注册表中删除,一定可以解决SQL挂起问题: 一、开始\运行\输入regedit回车 +HKEY_LOCAL_MACHINE +SYSTEM +CurrentControlSet +Control +Session Manager下的FileRenameOperations删掉 二、+HKEY_LOCAL_MACHINE +SOFTWARE +Microsoft +Windows +CurrentVersion +Setup +ExceptionComponents下的东西全部删掉如: {077ACEC7-979C-40AB-9835-435BA1511E0D} {30C7234B-6482-4A55-A11D-ECD9030313F2} {3FDF25EE-E592-4495-8391-6E9C504DAC2B} {60204BB3-7078-4F70-8F69-68297621941C}...... 总之有几项,就删几项,删掉后重启,再装SQL Server ? ? 3、清除注册表中有关的信息: 进入注册表的命令是:regedit 将HKEY_CURRENT_USER-->Software-->Microsoft-->Microsoft SQL Server删除 还有:HKEY_LOCAL_MACHINE-->Software-->Microsoft-->Microsoft SQL Server删除 4、到安装SQL Server 2005的目录下将整个文件夹删除。C:\Program Files\Microsoft SQL Server 最后重启一下就可以了。 这个比较彻底,至少我重装数据库就是这样做的……
  查看全部

1)添加/删除程序中彻底删除sql server。 2)将没有删除的sql server目录也删除掉。 3)打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目。 4)删除注册表中跟sql server相关的键。 ? ? 将以下两个从注册表中删除,一定可以解决SQL挂起问题: 一、开始\运行\输入regedit回车 +HKEY_LOCAL_MACHINE +SYSTEM +CurrentControlSet +Control +Session Manager下的FileRenameOperations删掉 二、+HKEY_LOCAL_MACHINE +SOFTWARE +Microsoft +Windows +CurrentVersion +Setup +ExceptionComponents下的东西全部删掉如: {077ACEC7-979C-40AB-9835-435BA1511E0D} {30C7234B-6482-4A55-A11D-ECD9030313F2} {3FDF25EE-E592-4495-8391-6E9C504DAC2B} {60204BB3-7078-4F70-8F69-68297621941C}...... 总之有几项,就删几项,删掉后重启,再装SQL Server ? ? 3、清除注册表中有关的信息: 进入注册表的命令是:regedit 将HKEY_CURRENT_USER-->Software-->Microsoft-->Microsoft SQL Server删除 还有:HKEY_LOCAL_MACHINE-->Software-->Microsoft-->Microsoft SQL Server删除 4、到安装SQL Server 2005的目录下将整个文件夹删除。C:\Program Files\Microsoft SQL Server 最后重启一下就可以了。 这个比较彻底,至少我重装数据库就是这样做的……
 

ORA-28547:连接服务器失败,可能是Oracle Net管理错误

admin 发表了文章 • 0 个评论 • 64 次浏览 • 2018-04-28 09:45 • 来自相关话题

*1). 绑定你的IP地址,别让其动态获取!

 *2). 修改oracle的网络配置文件,具体做法是:在oracle安装目录下搜索sqlnet.ora文件,一般在$\NETWORK\ADMIN目录下, 
用记事本打开把文件中的一行:  
SQLNET_AUTHENTICATION_SERVICES= (NTS)  
修改为:  
SQLNET_AUTHENTICATION_SERVICES= (NONE) 

--*3).同时修改监听器配置文件,具体做法是: 在oracle安装目录下搜索listener.ora文件,一般在$\NETWORK\ADMIN目录下,把主机名用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改为(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))。


 

Oracle数据库服务器IP变动出现以上问题(具体原因还不明确)

1、把服务改为固定IP

2、). 修改sqlnet.ora文件,一般在$\NETWORK\ADMIN目录下, 
用记事本打开把文件中的一行:  
SQLNET_AUTHENTICATION_SERVICES= (NTS)  
修改为:  
SQLNET_AUTHENTICATION_SERVICES= (NONE) 

 

SQLNET_AUTHENTICATION_SERVICES值的含义参考:

http://blog.csdn.net/ppp_10001 ... 45802 查看全部
*1). 绑定你的IP地址,别让其动态获取!

 *2). 修改oracle的网络配置文件,具体做法是:在oracle安装目录下搜索sqlnet.ora文件,一般在$\NETWORK\ADMIN目录下, 
用记事本打开把文件中的一行:  
SQLNET_AUTHENTICATION_SERVICES= (NTS)  
修改为:  
SQLNET_AUTHENTICATION_SERVICES= (NONE) 

--*3).同时修改监听器配置文件,具体做法是: 在oracle安装目录下搜索listener.ora文件,一般在$\NETWORK\ADMIN目录下,把主机名用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改为(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))。


 

Oracle数据库服务器IP变动出现以上问题(具体原因还不明确)

1、把服务改为固定IP

2、). 修改sqlnet.ora文件,一般在$\NETWORK\ADMIN目录下, 
用记事本打开把文件中的一行:  
SQLNET_AUTHENTICATION_SERVICES= (NTS)  
修改为:  
SQLNET_AUTHENTICATION_SERVICES= (NONE) 

 

SQLNET_AUTHENTICATION_SERVICES值的含义参考:

http://blog.csdn.net/ppp_10001 ... 45802

SQLNET.AUTHENTICATION_SERVICES

admin 发表了文章 • 0 个评论 • 61 次浏览 • 2018-04-28 09:41 • 来自相关话题

$ORACLE_HOME/network/admin/sqlnet.ora

 

如果使用了SQLNET.AUTHENTICATION_SERVICES=(NTS)
则说明可以使用OS认证就,只要conn / as sysdba 就可以登陆
但如果注释掉或SQLNET.AUTHENTICATION_SERVICES=(none)
必须要使用conn sys/password@oracle as sysdba才能登陆

1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者 ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为 其他任何值都不能使用OS认证。

 

 

 

我们看看ORACLE对这个设置是怎么解释的:
SQLNET.AUTHENTICATION_SERVICES
Purpose

Use the parameter SQLNET.AUTHENTICATION_SERVICES to enable one or more authentication services. If authentication has been installed, it is recommended that this parameter be set to either none or to one of the authentication methods.
Default
None

Values
Authentication Methods Available with Oracle Net Services:

* none for no authentication methods. A valid username and password can be used to access the database.
* all for all authentication methods
* nts for Windows NT native authentication

Windows NT native authentication

An authentication method that enables a client single login access to a Windows NT server and a database running on the server. 查看全部
$ORACLE_HOME/network/admin/sqlnet.ora

 

如果使用了SQLNET.AUTHENTICATION_SERVICES=(NTS)
则说明可以使用OS认证就,只要conn / as sysdba 就可以登陆
但如果注释掉或SQLNET.AUTHENTICATION_SERVICES=(none)
必须要使用conn sys/password@oracle as sysdba才能登陆

1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者 ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为 其他任何值都不能使用OS认证。

 

 

 

我们看看ORACLE对这个设置是怎么解释的:
SQLNET.AUTHENTICATION_SERVICES
Purpose

Use the parameter SQLNET.AUTHENTICATION_SERVICES to enable one or more authentication services. If authentication has been installed, it is recommended that this parameter be set to either none or to one of the authentication methods.
Default
None

Values
Authentication Methods Available with Oracle Net Services:

* none for no authentication methods. A valid username and password can be used to access the database.
* all for all authentication methods
* nts for Windows NT native authentication

Windows NT native authentication

An authentication method that enables a client single login access to a Windows NT server and a database running on the server.

无监听

admin 发表了文章 • 0 个评论 • 64 次浏览 • 2018-04-28 09:35 • 来自相关话题

昨天我在一台win7笔记本中安装了oracle11g,然后打算用另一个win10的笔记本使用plsql developer局域网内连接访问oracle数据库。但是遇到ORA-12541:TNS:无监听程序的错误。

首先我看了一下win7中的以下的两个服务是开启。 


解决方案: 
1.首先查看win7的ip地址,并用win10ping通才可以。

2.修改..\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora 
SID_NAME = CLRExtProc 改为 SID_NAME = orcl (orcl是实例名) 
HOST = localhost 改为 HOST = 192.168.1.111

3.修改..\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora 
两处 HOST = localhost 改为 HOST = 192.168.1.111 
SID = CLRExtProc 改为 SID = orcl

4.好了,重启oracle的上边的两个服务 查看全部
昨天我在一台win7笔记本中安装了oracle11g,然后打算用另一个win10的笔记本使用plsql developer局域网内连接访问oracle数据库。但是遇到ORA-12541:TNS:无监听程序的错误。

首先我看了一下win7中的以下的两个服务是开启。 


解决方案: 
1.首先查看win7的ip地址,并用win10ping通才可以。

2.修改..\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora 
SID_NAME = CLRExtProc 改为 SID_NAME = orcl (orcl是实例名) 
HOST = localhost 改为 HOST = 192.168.1.111

3.修改..\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora 
两处 HOST = localhost 改为 HOST = 192.168.1.111 
SID = CLRExtProc 改为 SID = orcl

4.好了,重启oracle的上边的两个服务

ORACL 常用查询

admin 发表了文章 • 0 个评论 • 66 次浏览 • 2018-04-28 09:16 • 来自相关话题

--查看用户和默认表空间的关系
select username,default_tablespace from dba_users;
--查看当前用户能访问的表
select * from user_tables; 
--Oracle查询用户表
select * from user_all_tables;

--Oracle查询用户视图
select * from user_views;
--查询所有函数和储存过程:
select * from user_source;
--查询所有用户:
select * from all_users;
--select * from dba_users
--查看当前用户连接:
select * from v$Session;
--查看用户角色
SELECT * FROM USER_ROLE_PRIVS;
--查看当前用户权限:
select * from session_privs;
--查看所有用户所拥有的角色
SELECT * FROM DBA_ROLE_PRIVS;
--查看所有角色
select * from dba_roles;
--查看数据库名
SELECT NAME FROM V$DATABASE;
--查看所有表空间使用情况
select a.file_id "FileNo",
       a.tablespace_name "Tablespace_name",
       a.bytes "Bytes",
       a.bytes - sum(nvl(b.bytes, 0)) "Used",
       sum(nvl(b.bytes, 0)) "Free",
       sum(nvl(b.bytes, 0)) / a.bytes * 100 "%free"
  from dba_data_files a, dba_free_space b
 where a.file_id = b.file_id(+)
 group by a.tablespace_name, a.file_id, a.bytes
 order by a.tablespace_name; 查看全部

--查看用户和默认表空间的关系
select username,default_tablespace from dba_users;
--查看当前用户能访问的表
select * from user_tables; 
--Oracle查询用户表
select * from user_all_tables;

--Oracle查询用户视图
select * from user_views;
--查询所有函数和储存过程:
select * from user_source;
--查询所有用户:
select * from all_users;
--select * from dba_users
--查看当前用户连接:
select * from v$Session;
--查看用户角色
SELECT * FROM USER_ROLE_PRIVS;
--查看当前用户权限:
select * from session_privs;
--查看所有用户所拥有的角色
SELECT * FROM DBA_ROLE_PRIVS;
--查看所有角色
select * from dba_roles;
--查看数据库名
SELECT NAME FROM V$DATABASE;
--查看所有表空间使用情况
select a.file_id "FileNo",
       a.tablespace_name "Tablespace_name",
       a.bytes "Bytes",
       a.bytes - sum(nvl(b.bytes, 0)) "Used",
       sum(nvl(b.bytes, 0)) "Free",
       sum(nvl(b.bytes, 0)) / a.bytes * 100 "%free"
  from dba_data_files a, dba_free_space b
 where a.file_id = b.file_id(+)
 group by a.tablespace_name, a.file_id, a.bytes
 order by a.tablespace_name;

oracle 11g 导入表时 提示 ***值太大拒绝执行的错误 修改字符集

admin 发表了文章 • 0 个评论 • 70 次浏览 • 2018-04-28 09:05 • 来自相关话题

经查询,这个是由于字符集设置的不是gbk的,导致导入时遇到中文字符出现的问题,

1.打开cmd

2.输入sqlplus

3.登录管理员账号:用户名/密码 as sysdba

4.查看版本号:select userenv('language') from dual;  注意带上分好

查询字符集结果有可能是AL32UTF8

更改字符集为ZHS16GBK

cmd命令

SQL> sqlplus /nolog;
SQL> conn /as sysdba;
SQL> shutdown immediate;
SQL> startup mount;
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>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

SQL>shutdown immediate;

SQL>startup;
SQL>alter system disable restricted session; 查看全部
经查询,这个是由于字符集设置的不是gbk的,导致导入时遇到中文字符出现的问题,

1.打开cmd

2.输入sqlplus

3.登录管理员账号:用户名/密码 as sysdba

4.查看版本号:select userenv('language') from dual;  注意带上分好

查询字符集结果有可能是AL32UTF8

更改字符集为ZHS16GBK

cmd命令

SQL> sqlplus /nolog;
SQL> conn /as sysdba;
SQL> shutdown immediate;
SQL> startup mount;
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>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

SQL>shutdown immediate;

SQL>startup;
SQL>alter system disable restricted session;