24-Oracle入门之Linux下的Oracle命令大全

2017-01-09 19:25:42来源:作者:人点击

24-Oracle入门之Linux下的Oracle命令大全


一,启动

1.#su - oracle 切换到oracle用户且切换到它的环境

2.$lsnrctl status 查看监听及数据库状态

3.$lsnrctl start 启动监听

4.$sqlplus / as sysdba 以DBA身份进入sqlplus

5.SQL>startup 启动db

二,停止

1.#su - oracle 切换到oracle用户且切换到它的环境

2.$lsnrctl stop 停止监听

3.$sqlplus / as sysdba 以DBA身份进入sqlplus

4.SQL>SHUTDOWN IMMEDIATE 关闭db

其中startup和shutdowm还有其他一些可选参数,有兴趣可以另行查阅

三,查看初始化参数及修改

1.#su - oracle 切换到oracle用户且切换到它的环境

2.$sqlplus / as sysdba 以DBA身份进入sqlplus

3.SQL>show parameter session; 查看所接受的session数量

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

Oracle process与session2008年12月29日 星期一 15:47

Connected to Oracle Database 10g Release 10.1.0.5.0

Connected as ifsapp

SQL> show parameter session

NAME TYPE VALUE

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

java_max_sessionspace_size integer 0

java_soft_sessionspace_limit integer 0

license_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

session_cached_cursors integer 0

session_max_open_files integer 10

sessions integer 225

shared_server_sessions integer

SQL> show parameters processes;

NAME TYPE VALUE

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

aq_tm_processes integer 0

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 3

log_archive_max_processes integer 2

processes integer 200

SQL> alter system set processes=600 scope=both;

SQL>

SQL> alter system set processes=600 scope=both;

alter system set processes=600 scope=both

ORA-02095: specified initialization parameter cannot be modified

SQL> alter system set sessions=600 scope=both;

alter system set sessions=600 scope=both

ORA-02095: specified initialization parameter cannot be modified

SQL>

SQL> alter system set processes=600 scope=spfile;

System altered

SQL> show parameters processes;

NAME TYPE VALUE

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

aq_tm_processes integer 0

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 3

log_archive_max_processes integer 2

processes integer 200

SQL> alter system set processes=600 scope=memory;

alter system set processes=600 scope=memory

ORA-02095: specified initialization parameter cannot be modified

重启数据库之后生效:

SQL> show parameters processes;

NAME TYPE VALUE

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

aq_tm_processes integer 0

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 3

log_archive_max_processes integer 2

processes integer 600

SQL> show parameter session

NAME TYPE VALUE

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

java_max_sessionspace_size integer 0

java_soft_sessionspace_limit integer 0

license_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

session_cached_cursors integer 0

session_max_open_files integer 10

sessions integer 665

shared_server_sessions integer

修改Oracle process 和 session 的方法

先备份spfile

1.通过SQLPlus修改

Oracle的sessions和processes的关系是

sessions=1.1*processes + 5

使用sys,以sysdba权限登录:

SQL> show parameter processes;

NAME TYPE VALUE

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

aq_tm_processes integer 1

db_writer_processes integer 1

job_queue_processes integer 10

log_archive_max_processes integer 1

processes integer 150

SQL> alter system set processes=400 scope = spfile;

系统已更改。

SQL> show parameter processes;

NAME TYPE VALUE

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

aq_tm_processes integer 1

db_writer_processes integer 1

job_queue_processes integer 10

log_archive_max_processes integer 1

processes integer 150

SQL> create pfile from spfile;

文件已创建。

重启数据库,OK!

【注:sessions是个派生值,由processes的值决定,公式sessions=1.1*process + 5】

2.通过修改oracle配置文件进行修改

修改SPFILEORCL.ORA文件中的processes的值。8.1.5中是init.ora文件,在9i中修改init.ora文件是无效的,这个文件由于是一个二进制的文件,不能直接使用notepad此类的编辑器打开。

否则会报错误ORA-27101 Shared memory realm does not exist。使用UltraEdit或者EditPlus之类的可以编辑二进制文件的编辑器打开此文件(直接编辑二进制文件),然后在Windows服务中重新启动Oracle服务器即可。

3.通过Oracle Enterprise Manager Console在图形化管理器中修改

a.以系统管理员的身份登入

b.进入数据库的例程-配置-一般信息-所有初始化参数

c.修改processes的值

d.Sessions的值由公式sessions=1.1*process + 5派生得到

一个process可以有0个,1个或多个session

=============================================

Oracle中系统process与session的关系

在实际的应用中,Shared Server中的Process与Oracle数据库中的Session并不是一一对应的,Shared Server中的Process(一个)对应着Oracle中的一个或者一个以上的Session。

在dedicated server机器上的测试如下:

数据库的session和操作系统process是对应的。

这表示一个session对应一个process,但是一个process未必对应一个session。

大家可以通过SELECT spid

FROM v$process

WHERE NOT EXISTS ( SELECT 1

FROM v$session

WHERE paddr = addr); 查看

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

COUNT(*)

----------

53

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

COUNT(*)

----------

50

oracle10g中只要指定processes,sessions就会自动计算出,所以不需要指定sessions也可,除非对sessions有特殊要求,要求其比oracle自动计算出的sessions要大,那么就需要手动指定sessions了

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

4.SQL>alter system set shared_servers=10; 将shared_servers的数量设置为10

四.数据库连接数目

其中一个数据库连接需要一个session,它的值由processes决定,session与processes通常有以下关系:

session = 1.1 * processes + 5

不过这也不是绝对的,还要受到CPU和内存等硬件条件的限制。另外processes和session不可以通过alter system语句直接修改,只可以修改服务器参数文件来更改(Server Parameter File)。如果存在一个server parameter file,通过alter system语句所作的更改将会被持久化到文件中。

首先以Oracle用户登录

1、 $/oracle/oracle/app/product/101/bin/dbstart:启动数据库。

2、 $/oracle/oracle/app/product/101/bin/dbshut:关闭数据库。

3、 $/oracle/oracle/app/product/101/bin/dbca:数据库配置助理,进行数据库安装、删除和修改。

4、 $/oracle/oracle/app/product/101/bin/netca:数据库网络服务配置管理。

5、 $/oracle/oracle/app/product/101/bin/netmgr:数据库网络服务和监听配置助理。

6、 $/oracle/oracle/app/product/101/bin/sqlplus:可运行SQL,进行数据库操作,并可起停数据库。运行sqlplus命令,输入sys用户和口令登陆以后,运行如下命名:

〉shutdown immediate 立即关闭数据库

〉startup 启动数据库

7、 $/oracle/oracle/app/product/101/bin/lsnrctl start:启动数据库监听

$/oracle/oracle/app/product/101/bin/lsnrctl stop:关闭数据库监听

$/oracle/oracle/app/product/101/bin/lsnrctl status:察看数据库监听运行状态

Oracle数据库命令速查

1. 日志管理

1.1. 强制日志切换(forcing log switches)

sql> alter system switch logfile;

1.2. 强制执行检查点(forcing checkpoints)

sql> alter system checkpoint;

1.3. 增加一个重做日志组(adding online redo log groups)

sql> alter database add logfile [group 4]sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m;

1.4. 增加一个重做日志文件(adding online redo log members)

sql> alter database add logfile member

sql> '/disk3/log1b.rdo' to group 1,

sql> '/disk4/log2b.rdo' to group 2;

1.5. 改变重做日志文件名(changes the name of the online redo logfile)

sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log'

sql> to 'c:/oracle/oradata/redo01.log';

1.6. 删除重做日志组(drop online redo log groups)

sql> alter database drop logfile group 3;

1.7. 删除重做日志文件(drop online redo log members)

sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log';

1.8. 清空重做日志文件(clearing online redo log files)

sql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo';

1.9. 使用logminer分析重做日志文件(using logminer analyzing redo logfiles)

a. in the init.ora specify utl_file_dir = ' '

b. sql> execute dbms_logmnr_d.build('oradb.ora','c:/oracle/oradb/log');

c. sql> execute dbms_logmnr_add_logfile('c:/oracle/oradata/oradb/redo01.log',

sql> dbms_logmnr.new);

d. sql> execute dbms_logmnr.add_logfile('c:/oracle/oradata/oradb/redo02.log',

sql> dbms_logmnr.addfile);

e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>'c:/oracle/oradb/log/oradb.ora');

f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters

sql> v$logmnr_logs);

g. sql> execute dbms_logmnr.end_logmnr;

2. 表空间管理

2.1. 创造表空间(create tablespaces)

sql> create tablespace ts_name datafile 'c:/oracle/oradata/file1.dbf' size 100m ,

sql>'c:/oracle/oradata/file2.dbf' size 100m minimum extent 550k [logging/nologging]sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0)

sql> [online/offline] [permanent/temporary] [extent_management_clause]

2.2. 创建本地管理的表空间(locally managed tablespace)

sql> create tablespace user_data datafile 'c:/oracle/oradata/user_data01.dbf'

sql> size 500m extent management local uniform size 10m;

2.3. 创建临时表空间(temporary tablespace)

sql> create temporary tablespace temp tempfile 'c:/oracle/oradata/temp01.dbf'

sql> size 500m extent management local uniform size 10m;

2.4. 改变表空间的存储参数(change the storage setting)

sql> alter tablespace app_data minimum extent 2m;

sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);

2.5. 使表空间离线或连线(taking tablespace offline or online)

sql> alter tablespace app_data offline;

sql> alter tablespace app_data online;

2.6. 设置表空间为只读/可写模式(read_only tablespace)

sql> alter tablespace app_data read only|write;

2.7. 删除表空间(droping tablespace)

sql> drop tablespace app_data including contents;

2.8. 允许数据文件自动扩展(enableing automatic extension of data files)

sql> alter tablespace app_data add datafile 'c:/oracle/oradata/app_data01.dbf' size 200m

sql> autoextend on next 10m maxsize 500m;

2.9. 手工改变数据文件的大小(change the size fo data files manually)

sql> alter database datafile 'c:/oracle/oradata/app_data.dbf' resize 200m;

2.10. 改名表空间中的数据文件(Moving data files: alter tablespace)

sql> alter tablespace app_data rename datafile 'c:/oracle/oradata/app_data.dbf

sql> to 'c:/oracle/app_data.dbf';

2.11. 改变数据库中的数据文件(moving data files:alter database)

sql> alter database rename file 'c:/oracle/oradata/app_data.dbf' to 'c:/oracle/app_data.dbf';

3. 表

3.1. 创建表(create a table)

sql> create table table_name (column datatype,column datatype]....)

sql> tablespace tablespace_name [pctfree integer] [pctused integer]

sql> [initrans integer] [maxtrans integer]sql> storage(initial 200k next 200k pctincrease 0 maxextents 50)

sql> [logging|nologging] [cache|nocache]

3.2. 复制一个已存在的表(copy an existing table)

sql> create table table_name [logging|nologging] as subquery

3.3. 创建一个临时表(create temporary table)

sql> create global temporary table xay_temp as select * from xay;

on commit preserve rows/on commit delete rows

3.4. pctfree和pctused参数计算公式

pctfree = (average row size - initial row size) *100 /average row size

pctused = 100-pctfree- (average row size*100/available data space)

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台