###########################scott用户登陆解锁##############################

新装完Oracle11g后,用system/password可以正常登录,而使用scott/tiger用户却不能登录:

conn scott/tiger 

errororacle10g the account is locked 

oracle10g the password has expired

原因:默认Oracle10gscott不能登陆。被禁用了。

解决方法:

首先确认已经安装oracle 数据库和客户端

.在客户端DOS下执行如下语句:

注意提示符号

c:\sqlplus /nolog

sqlp\connsys/system@oracle10assysdba// sys为当前的oracle 用户 system 为该用户密码oracle10 SID

# alterusersocttaccountlock;//  scott用户锁定

# alteruserscottaccountunlock;//scott用户解锁

# alteruser scottidentifiedbyscott//修改scott用户密码为 scott,scott用户默认密码为 tiger

1 Dos下输入C:\sqlplus /nolog 

DBA的身份登录

conn sys/password@SID as sysdba; 

解锁

alter user scott account unlock;

弹出一个修改密码的对话框,修改密码

conn scott/tiger

1-4如下):

SQL> conn sys/sys as sysdba;

Connected.

SQL> alter user scott account unlock;

User altered.

SQL> commit;

Commit complete.

SQL> conn scott/tiger//请输入新密码,并确认后OK

Password changed

Connected.

###################oracle查看数据文件控制文件及日志文件命令########

conn sys/benson@oracle as sysdba;

查看数据文件

SQL> select name from v$datafile;

NAME
--------------------------------------------------------
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF

查看控件文件

SQL> select name from v$controlfile;

NAME
----------------------------------------------------------
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL02.CTL
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL03.CTL

查看日志文件

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO03.LOG
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO02.LOG
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO01.LOG

###### ############################

查看当前登陆的用户名:

select user from dual; 或者select * from user_users;

查看当前用户拥有的角色和权限:

select * from user_role_privs;

select * from session_privs;

 

查看创建的表

select tname from tab where tname='PRODUCTINFO'; 或者

select table_name from user_tables where table_name='PRODUCTINFO';

##########################333

1.oracle

1启动监听

lsnrctl start

2)进入sqlplus界面

sqlplus /nolog

SQL>conn sys/jiaxiaoai@orcl as sysdba;

3)启动数据库实例

SQL>startup;

4)查看当前所有的数据库

select * from v$database;

 select name from v$database;

5)查看哪些用户拥有sysdbasysoper权限

select * from V_$PWFILE_USERS

show user;查看当前数据库连接用户

6)进入某个数据库:database 数据库名;

查看数据库结构:desc v$database

7)查看所有用户实例:

select * from v$instance

 select instance_name from v$instance;

8)查看当前库的所有数据表

select * from all_tables;

select table_name from all_tables;

select table_name from user_tables;

select table_name from all_tables where owner='用户名';

9)查看表结构

desc 表名;

10)增加数据库用户

create user 用户名 identified by 密码 default tablespace users Temporary TABLESPACE Temp

11)用户授权

grant connectresourcedba to 用户名;

grant sysdba to 用户名;

12)更改数据库用户密码

alter user 用户名 identified by 密码;

13)查看当前用户创建的表

select tname from tab;

查看约束条件。

desc user_constraints;

select owner,constraint_name,CONSTRAINT_TYPE,table_name from user_constraints;

desc user_cons_colums;

select a.owner,a.constraint_name,a.constraint_type,a.table_name,b.column_name from user_constraints a,user_cons_colums b where a.constraint_name=b.constraint_name;

###########################################################################

执行insert的时候出现这个错误。

insert into 1 values (123,2423,12);

1的结构有4column,显然插入的值只有三个,因此才会出现这个问题。

再加个column 的值执行后,ok

倘若只想插入三个数值的话:

insert into 1(a,b,c) values (123,2423,12);

用这个语句就可以了。

#######################################################

无法打开OEM https://baoshengzhu-pc:1158/em

请先启动服务OracleDBConsoleoracle ,在打开即可。

 

Scott 用户无法打开autot,报如下错误

SQL> set autot on

SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色

SP2-0611: 启用 STATISTICS 报告时出错

 

解决办法:

conn sys as sysdba

SQL>create role plustrace;

SQL>grant select on v_$sesstat to plustrace;
SQL>grant select on v_$statname to plustrace;
SQL>grant select on v_$mystat to plustrace;
SQL>grant plustrace to dba with admin option; 

SQL> set echo off
SQL> grant plustrace to scott;

 

DB_RECOVERY_FILE_DEST定义RMAN 备份位置

DB_CREATE_ONLINE_LOG_DEST_n定义重做日志文件和控制文件的创建位置

DB_CREATE_FILE_DEST定义数据文件和临时文件的默认文件系统目录的位置

 

示例 DB_CREATE_FILE_DEST文件:

参数说明:这个参数用于指定Oracle数据库服务器创建以下文件的缺省路径:

 

SQL> ALTER SYSTEM SET DB_CREATE_FILE_

 Datafiles

 Tempfiles

 Redo log files

 Control files

 Block change tracking files

在设置这个路径参数之前先看一下:

show parameter DB_CREATE_FILE_DEST;

SQL> show parameter DB_CREATE_FILE_DEST;

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

db_create_file_deststring/soft/datafile

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u01/app/oracle/oradata';

开始设置:

ALTER SYSTEM SET DB_CREATE_FILE_DEST

SQL> alter system set DB_CREATE_FILE_DEST='/soft/datafile'; 

System altered.

SQL> show parameter DB_CREATE_FILE_DEST;

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

db_create_file_deststring/soft/datafile

示例: DB_CREATE_ONLINE_LOG_DEST_n定义重做日志文件和控制文件的创建置

 

SQL> show parameter db_create_online_log_dest;

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

db_create_online_log_dest_1string

db_create_online_log_dest_2string

db_create_online_log_dest_3string

db_create_online_log_dest_4string

db_create_online_log_dest_5string

通过定义db_create_online_log_dest_n参数,实现日志组成员的多元化。

SQL> alter system set db_create_online_log_dest_1='/disk1/redo';

SQL> alter system set db_create_online_log_dest_2='/disk2/redo';

SQL> alter system set db_create_online_log_dest_3='/disk3/redo';

SQL> show parameter db_create_online_log_dest

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

db_create_online_log_dest_1string/disk1/redo

db_create_online_log_dest_2string/disk2/redo

db_create_online_log_dest_3string/disk3/redo

db_create_online_log_dest_4string

db_create_online_log_dest_5string

oracle 告警日志位置查询:

SQL> show parameter background_dump_dest;

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

background_dump_deststring/u01/app/oracle/admin/BENSON1/ bdump

请输入用户名:sys as sysdba

输入口令:

ERROR:

ORA-12560: TNS: 协议适配器错误

解决:

1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板启动oraclehome92TNSlistener服务。

2.2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.

3.SID没有设置对。输set oracle_sid=XXXX,XXXX就是你的database SID.

DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL 使用实例:

注:如果所管理的数据库包含字典管理表空间,而且要将这些表空间转换为本地管理表

空间,请使用DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL过程完成此操作。EXECUTE dbms_space_admin.tablespace_migrate_to_local("tablespace"); ---转换表空间

在前几天的log中提到了如何将system表空间从dictionary-management tablespace转换为local management tablespace

在本文中将讲述dbms_space_Admin.tablespace_migrate_to_local的另一个实用的案例。

当我们需要drop 一个包含很多extents的数据字典管理表空间是一件比较头痛的问题。

他需要不停的访问UET$FET$表,执行插入,删除操作,长期占有ST enqueue,造成数据库长时间无法allocatedeallocate extents,情况严重可能会造成很严重的后果。

如何减少drop tablespace的时间呢?请看下面这个例子

例子取自metalink note:311512.1

执行时间从50多分钟减少到1分钟左右

Following are the test results -

CASE 1 - Dropping a DMT directly 

-----------------------------------------------

SQL> select bytes,count(*) from dba_extents where tablespace_name='DMT_DROP' group by bytes;

BYTES COUNT(*)

---------- ----------

2048 92359

4096 1

14:41:42 SQL> drop tablespace dmt_drop including contents;

Tablespace dropped.

15:32:31 SQL>

-----> Takes around 50 minutes to drop.

CASE 2 - Dropping a DMT after converting to LMT

--------------------------------------------------------------------

select bytes,count(*) from dba_extents where tablespace_name='DMT_DROP' group by bytes;

BYTES COUNT(*)

---------- ----------

2048 92359

4096 1

17:00:33 

SQL>exec dbms_space_Admin.tablespace_migrate_to_local(tablespace_name=>'DMT_DROP')

PL/SQL procedure successfully completed.

17:01:14 SQL> drop tablespace dmt_drop including contents;

Tablespace dropped.

17:01:32 SQL>

-----> Takes around 1 minute to drop.

创建临时表:

ON COMMIT DELETE ROWS:指定插入行的生存期仅为事务处理的持续时间

ON COMMIT PRESERVE ROWS:指定插入行的生存期为会话的持续时间

CREATE GLOBAL TEMPORARY TABLE employees_temp

ON COMMIT PRESERVE ROWS

AS SELECT * FROM employees;

创建序列列子

create sequence "scott"."xulie2" nocycle noorder cache 20 maxvalue 10000 minvalue 1 increment by 2 start with 1

使用MERGE 命令可通过一个命令同时执行INSERT 

UPDATE 操作。

MERGE 命令

使用MERGE 命令可在一个命令中执行UPDATE INSERT。可将一个源中的数据合并到

另一个源,因而可选择插入新行和更新特定列(如果行已经存在)。

请考虑以下示例。

JOBS 表中的某些数据如下所示:

JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY

---------- -------------- ---------- ----------

AD_PRES President 20000 40000

FI_ACCOUNT Accountant 4200 9000

ST_CLERK Stock Clerk 2000 5000

IT_PROG Programmer 4000 10000

以下是JOBS_ACQUISITION 表的内容:

JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY

---------- -------------- ---------- ----------

AD_PRES VP 20000 40000

DBA DB Admin 4200 9000

SA Sys Admin 2000 5000

使用MERGE 命令可将具有新JOB_ID 的所有行插入到JOBS 表中,如果JOB_ID 已存在,

则使用JOB_TITLE 更新现有JOBS 行。结果“President”职位更改为“VP”,并且添加

了新职务“SA”和“DBA

merge into jobs j

using(select * from jobs_acqulstion) a

on (j.job_id=a.job_id)

when matched then update set j.job_title=a.job_titel

when not matched then insert

(j.job_id,j.job_title,j.min_salary,j.max_salary)

values(a.job_id,a.job_title,a.min_salary,a.max_salary)

COMMIT ROLLBACK 命令

默认情况下,不会提交输入的每个DML 命令。几个工具(包括iSQL*Plus)提供了一些

选项,使用这些选项可以基于每个命令进行提交,或基于一组命令进行提交。

在发出COMMIT ROLLBACK 之前,更改处于暂挂状态。仅执行更改的用户可以查看更

改后的数据。其他用户可选择相同数据,但只能看到更改之前的数据。其他用户不能对别

的用户已更改的数据发出DML

默认情况下,当一个用户尝试更改另一个用户正更改的行时,此用户必须等待,直到执行

更改的用户提交或回退更改为止。这由Oracle 数据库的锁定机制自动进行控制。由于锁定机制已经内置到行中,所以数据库绝不会用完锁。

数据并发处理

默认情况下,锁定机制采用细粒度行级锁定模式。不同的事务处理可在同一个表内更新不同的行,彼此不相互干扰。

尽管默认模式是行级锁定,但Oracle 数据库在需要时也支持在更高级别执行手动锁定。

SQL> LOCK TABLE employees IN EXCLUSIVE MODE;

Table(s) Locked.

使用以上语句时,尝试更新锁定表中的行的任何其它事务处理都必须等待,直到发出锁定

请求的事务处理完成为止。EXCLUSIVE 是最严格的锁定模式。下面列出了其它锁定模式:

 ROW SHARE:允许并发访问锁定的表,但禁止会话锁定整个表进行独占访问。

 ROW EXCLUSIVE:与ROW SHARE 相同,但是还禁止以SHARE 模式锁定。更新、插入或删除数据时会自动获取ROW EXCLUSIVE 锁定。

 SHARE:允许并发查询,但禁止更新锁定的表。需要有(并且会自动请求)SHARE锁定才能创建表的索引。

SHARE ROW EXCLUSIVE:用于查询整个表,允许其他人查询表中的行,但禁止其他人在SHARE 模式下锁定表或更新行。

 EXCLUSIVE:允许查询锁定表,但禁止对锁定表执行任何其它活动。需要有EXCLUSIVE 锁定才能删除表。

与任何锁定请求一样,手动锁定语句会一直等待,直到持有锁定(或先前请求锁定)的会话释放锁定为止。LOCK 命令接受用于控制等待行为的特殊参数NOWAIT

如果指定表已经由另一会话锁定,NOWAIT 会立即将控制权还给您:

SQL> LOCK TABLE hr.employees IN SHARE MODE NOWAIT;

LOCK TABLE hr.employees IN SHARE MODE NOWAIT

*

ERROR at line 1:

ORA-00054: resource busy and acquire with NOWAIT specified

通常不需要手动锁定对象。自动锁定机制提供大多数应用程序所需的数据并发处理能力。

使用SQL 解决锁定冲突

SQL 语句可用来确定阻塞会话并终止会话。

SQL> select sid, serial#, username from v$session where sid in

(select blocking_session from v$session)

SQL> alter system kill session '144,8982' immediate;

07_DICTIONARY_ACCESSIBILITY参数

SQL> show parameter o7

O7_DICTIONARY_ACCESSIBILITY boolean FALSE

alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;

重启之后生效

实例:

SQL> show parameter o7

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

O7_DICTIONARY_ACCESSIBILITY boolean FALSE

SQL> create user test1 identified by test1;

User created.

SQL> grant connect,select any table to test1;

Grant succeeded.

open others window to logon:

SQL> conn test1/test1@testdb

Connected.

SQL> select count(*) from user_tables;

COUNT(*)

----------

0

SQL> select count(*) from dba_tables;

select count(*) from dba_tables

*

ERROR at line 1:

ORA-00942: table or view does not exist

SQL> select count(*) from v$session;

select count(*) from v$session

*

ERROR at line 1:

ORA-00942: table or view does not exist;

Explicit grant privilege to test1;

SQL> grant select on dba_tables to test1;

Grant succeeded.

SQL> grant select on v_$session to test1;

Grant succeeded.

test1 window:

SQL> select count(*) from dba_tables;

COUNT(*)

----------

816

SQL> select count(*) from v$session;

COUNT(*)

----------

13

Set .parameter value=true;

SQL> show parameter o7

NAME TYPE VALUE

------------------------------------ ----------- -----------

O7_DICTIONARY_ACCESSIBILITY boolean TRUE

SQL> create user test2 identified by test2;

User created.

SQL> grant connect ,select any table to test2;

Grant succeeded.

SQL>

SQL> conn test2/test2@testdb

Connected.

SQL> select count(*) from user_tables;

COUNT(*)

----------

0

SQL> select count(*) from dba_tables;

COUNT(*)

----------

816

SQL> select count(*) from v$session;

COUNT(*)

----------

10
select any dictionary系统权限可以override O7_DICTIONARY_ACCESSIBILITY=false的情况去访问系统数据字典

1本地操作系统认证

操作系统用户oracle,创建操作系统认证的用户ops$oracle.

SQL>show parameter os_authent_prefix;

NAME                       TYPE       VALUE

--------------------------- ----------- --------

os_authent_prefix          string     ops$

SQL>create user ops$oracle identified externally;

User created.

SQL>grant connect, resource to ops$oracle;

Grant succeeded.

[oracle@cent4 ~]$sqlplus /

SQL>show user

USER is "OPS$ORACLE"

2远程操作系统认证

remote_os_authent改成true后,才可以远程操作系统认证.

SQL>show parameter remote_os_authent

NAME                   TYPE       VALUE

----------------------- ----------- ------------

remote_os_authent      boolean    FALSE

SQL>alter system set remote_os_authent=true scope=spfile;

System altered.

[oracle@cent4 ~]$sqlplus /@centtns

SQL*Plus: Release 10.2.0.1.0 - Production on星期一6月6 10:56:12 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL>

注意: 1.客户端的操作系统用户也要是oracle,这样才能实现远程操作系统认证.

 2. remote_os_authent这个参数开启后,存在很大的安全隐患,远端服务器只要根据数据库中存在的外部用户来创建用户,就可以登陆到数据库中,因此除非必要,否则不建议开启这个参数.

查看某表的约束条件:

1.系统包 获取DBMS_METADATA.GET_DDL('TABLE','你的表名') //红色字体为大写
select dbms_metadata.get_ddl('TABLE','VOTE_ANSWER') FROM DUAL;
2.
数据字典获取

select a.owner,a.constraint_name,a.constraint_type from all_constraints a where a.owner=upper('SCOTT') and a.table_name=upper('VOTE_ANSWER')

select column_name,constraint_name from user_cons_columns a where a.constraint_name='CHECKEY';

以上两个句子结合为如下

select c.column_name,c.constraint_name from (select a.owner,a.constraint_name,a.constraint_type from all_constraints a where a.owner=upper('SCOTT') and a.table_name=upper('VOTE_ANSWER')) b,

(select column_name,constraint_name from user_cons_columns a) c

where b.constraint_name=c.constraint_name

merge 语句练习,注意using的表,无重复。

SQL> merge into yes

2using(select distinct group# from benson ) benson

3on(benson.group#=yes.hao3)

4when matched then update

5set yes.hao2=benson.group#

######################################################################33

错误信息:

[oracle@VM_Center5_wusy u01]$ netca 

Oracle Net Services 配置

# An unexpected error has been detected by HotSpot Virtual Machine: 

# SIGSEGV (0xb) at pc=0xa43ea4d4, pid=4341, tid=3086784720 

# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode) 

# Problematic frame: 

# C [libnnz11.so+0x3c4d4] 

# An error report file with more information is saved as hs_err_pid4341.log 

# If you would like to submit a bug report, please visit: 

http://java.sun.com/webapps/bugreport/crash.jsp

/u01/oracle/bin/netca: line 178: 4341 已放弃 $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle.net.ca.NetCA $* 

解决办法:

hosts文件中的127.0.0.1 后面添加对应的主机名,如:

vi /etc/hosts 

127.0.0.1 localhost.localdomain localhost VMRHEL5

案列1

不能打开到主机的连接,在端口1521:连接失败的解决方法

telnet IP 1521

不能打开到主机的连接, 在端口 1521: 连接失败

不存在防火墙拒绝的情况,

我打开另一台也装有Oracle1521可以连接的机器,查看NETWORK\ADMIN\listener.ora文件,仔细对比两个Oracle该文件的区别,发现正常的Oracle服务器上,listener.ora文件,如下这段HOST显示的是机器名,而不能连接的是“localhost”。

LISTENER =

(DESCRIPTION =

www.2cto.com 

(ADDRESS = (PROTOCOL = TCP)(HOST = lggsuper_pc)(PORT = 1521))

)

 

Oracle错误

解决:

第一步:

Shutdown abort

Startup mount

SQL> show parameter background_dump_dest;

 

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

background_dump_deststringd:\app\baoshengzhu\diag\rdbms\

oracle\oracle\trace

 

进入该路径,查看alert_oracle.log,可见文件记录错误:

####################错误信息以及建议解决的方法##########################################################

Errors in file d:\app\baoshengzhu\diag\rdbms\oracle\oracle\trace\oracle_ora_6988.trc:

ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用 100.00%, 尚有 0 字节可用。

************************************************************************

You have following choices to free up space from recovery area:

1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,

then consider changing RMAN ARCHIVELOG DELETION POLICY.

2. Back up files to tertiary device such as tape using RMAN

BACKUP RECOVERY AREA command.

3. Add disk space and increase db_recovery_file_dest_size parameter to

reflect the new space.

4. Delete unnecessary files using RMAN DELETE command. If an operating

system command was used to delete files, then use RMAN CROSSCHECK and

DELETE EXPIRED commands.

 

###################################################################################

第二步:

select * from v$recovery_file_dest;

alter system set db_recovery_file_dest_size=10737418240

alter database open

 

 

 

exit

第三步:
rman target /
进入rman工具窗口
rman target /
RMAN>crosscheck archivelog all;-- 运行这个命令可以把无效的expired的archivelog标出来。
RMAN>delete expired archivelog all; -- 直接全部删除过期的归档日志。
RMAN>delete noprompt archivelog until time "sysdate -3";  -- 也可以直接用一个指定的日期来删除。
重新打开数据库:

 

如果遇到一些情况:

 

lusrmgr.msc 查看用户是否属于oracleDBA组里面。

 

然后,认证方式改一下,找到sqlnet.ora文件

 

控制文件丢失,重建控制文件步骤:

 

查看文件信息:

SQL> select member from v$logfile;

MEMBER

--------------------------------------------------------------------------------

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\REDO03.LOG

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\REDO02.LOG

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\REDO01.LOG

 

######################

SQL> select name from v$controlfile;

NAME

------------------------------------------------------------------

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\CONTROL01.CTL

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\CONTROL03.CTL

D:\APP\BAOSHENGZHU\FLASH_RECOVERY_AREA\ORACLE\CONTROL02.CTL

 

##############

SQL> select name from v$datafile;

NAME

----------------------------------------------------------------

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\SYSTEM01.DBF

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\SYSAUX01.DBF

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\UNDOTBS01.DBF

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\USERS01.DBF

D:\APP\BAOSHENGZHU\ORADATA\ORACLE\EXAMPLE01.DBF

D:\APP\BAOSHENGZHU\PRODUCT\11.2.0\DBHOME_2\DATABASE\TEST1.DBF

#################################################################################################

删除所有的控制文件,后操作

第一步:

shutdown immediate

第二步:

create controlfile

reuse database "oracle" noresetlogs noarchivelog

maxlogfiles 35

maxlogmembers 3

maxinstances 1

maxloghistory 400

logfile

group 1 'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\REDO01.LOG' size 50M,

group 2 'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\REDO02.LOG' size 50M,

group 3 'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\REDO03.LOG' size 50M

datafile

'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\SYSTEM01.DBF',

'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\SYSAUX01.DBF',

'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\UNDOTBS01.DBF',

'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\USERS01.DBF',

'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\EXAMPLE01.DBF',

'D:\APP\BAOSHENGZHU\PRODUCT\11.2.0\DBHOME_2\DATABASE\TEST1.DBF'

character set we8dec

第三步:

alter system set control_files=

'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\CONTROL01.CTL',

'D:\APP\BAOSHENGZHU\ORADATA\ORACLE\CONTROL03.CTL',

'D:\APP\BAOSHENGZHU\FLASH_RECOVERY_AREA\ORACLE\CONTROL02.CTL' scope=spfile;

第四步:

alter database open

完成

 

 

 

 

select * from dba_temp_files; //查看临时表空间

ALTER DATABASE TEMPFILE 'D:\APP\BAOSHENGZHU\PRODUCT\11.2.0\DBHOME_2\DATABASE\TEMPORARY01.DBF' AUTOEXTEND ON NEXT 1G MAXSIZE 10G; //修改临时表空间大小

 

select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';或select temporary_tablespace from user_users;//查看默认的临时表空间

 

exp user/passwd@xxx file='/xxx/xx/xx.dmp'

log='/xxx/xx/xx.log' owner=xxx

 

 

imp user/passwd@xxx file='/xxx/xx/xx.dmp'

log='/xxx/xx/xx.log' fromuser=xxx

touser=xxx

 

 

 

Oracle下查看索引的语句

1. 查询一张表里面索引 

select * from user_indexes where table_name=upper('表名'); 

2. 查询被索引字段 

select * from uer_ind_columnss where index_name=('索引名'); 

3. 给某一字段创建索引 

create index 索引名 on 表名(字段名1,字段名2)