oracle数据库配置文件在哪里(oracle配置数据库连接)

Oracle数据库03-用户权限与数据库的连接一、oracle用户与权限管理1、用户管理

只有合法的用户账号才能访问Oracle数据库,Oracle有几个默认的数据库用户。

创建用户核对清单:

·选择用户名密码

·识别用户需要用于存储对象的表空间

·决定每个表空间的限额

·分配缺省表空间和临时表空间

·创建用户

·向用户授予权限和角色

oracle数据库配置文件在哪里(oracle配置数据库连接)

(1)查看系统用户及状态

SQL> select username,account_status from dba_users;

USERNAME ACCOUNT_STATUS

—————————— ——————————–

MGMT_VIEW OPEN

SYS OPEN

SYSTEM OPEN

DBSNMP OPEN

SYSMAN OPEN

OUTLN EXPIRED & LOCKED

FLOWS_FILES EXPIRED & LOCKED

MDSYS EXPIRED & LOCKED

ORDSYS EXPIRED & LOCKED

EXFSYS EXPIRED & LOCKED

WMSYS EXPIRED & LOCKED

USERNAME ACCOUNT_STATUS

—————————— ——————————–

APPQOSSYS EXPIRED & LOCKED

APEX_030200 EXPIRED & LOCKED

OWBSYS_AUDIT EXPIRED & LOCKED

ORDDATA EXPIRED & LOCKED

CTXSYS EXPIRED & LOCKED

ANONYMOUS EXPIRED & LOCKED

XDB EXPIRED & LOCKED

ORDPLUGINS EXPIRED & LOCKED

OWBSYS EXPIRED & LOCKED

SI_INFORMTN_SCHEMA EXPIRED & LOCKED

OLAPSYS EXPIRED & LOCKED

USERNAME ACCOUNT_STATUS

—————————— ——————————–

SCOTT EXPIRED & LOCKED

ORACLE_OCM EXPIRED & LOCKED

XS$NULL EXPIRED & LOCKED

BI EXPIRED & LOCKED

PM EXPIRED & LOCKED

MDDATA EXPIRED & LOCKED

IX EXPIRED & LOCKED

SH EXPIRED & LOCKED

DIP EXPIRED & LOCKED

OE EXPIRED & LOCKED

APEX_PUBLIC_USER EXPIRED & LOCKED

USERNAME ACCOUNT_STATUS

—————————— ——————————–

HR EXPIRED & LOCKED

SPATIAL_CSW_ADMIN_USR EXPIRED & LOCKED

SPATIAL_WFS_ADMIN_USR EXPIRED & LOCKED

36 rows selected.

(2)解锁系统用户scott

SQL> alter user scott identified by tiger account unlock;

User altered.

SQL> select username,account_status from dba_users;

USERNAME ACCOUNT_STATUS

—————————— ——————————–

MGMT_VIEW OPEN

SYS OPEN

SYSTEM OPEN

DBSNMP OPEN

SYSMAN OPEN

SCOTT OPEN

OUTLN EXPIRED & LOCKED

FLOWS_FILES EXPIRED & LOCKED

MDSYS EXPIRED & LOCKED

ORDSYS EXPIRED & LOCKED

EXFSYS EXPIRED & LOCKED

……

(3)创建自定义用户

格式:

create user 用户名 identified by 密码 [default tablespace 缺省表空间] [temporary tablespace 临时表空间] [quota {integer [K|M] | unlimited} on 表空间] [password expire]

说明:

quota:用户对表空间的配额,默认为unlimited(不限制)

password expire:用户第一次使用密码失效,需重新设置

示例:

SQL> create tablespace benet datafile ‘/u01/oracle/oradata/test/benet01.dbf’ size 10m autoextend on;

SQL> create user tom identified by 123 default tablespace benet;

SQL> drop user 用户名 cascade; //删除用户

2、权限管理

权限指的是执行待定命令或访问数据库对象的权利。权限有两种类型,系统权限和对象权限。

系统权限:允许用户执行某些数据库操作,如创建表就是一个系统权限

对象权限:允许用户会数据库对象(如表、视图、序列等)执行特定操作

(1)角色管理

角色是一组相关权限的组合,可以将权限授权予角色,再把角色授权与用户,以简化权限管理。

常见的角色:

·connect:需要连接上数据库的用户,特别是那些不需要创建表的用户通常赋予此角色

·resource:更为可靠和正式的数据库用户可以授权此角色,可以创建表、触发器、过程等

·dba:数据库管理员角色,拥有管理数据库的最高权限。不要轻易授予给非管理员

(2)权限管理

格式:

grant 权限 to 用户;

grant 权限 on 用户.表 to 用户;

revoke 权限 from 用户;

revoke 权限on 用户.表 from 用户;

示例:

SQL> grant connect,resource to tom;

//授权给tom用户connect和resource角色权限

SQL> revoke connect,resource from tom;

//撤销tom用户的connect和resource权限

SQL> grant all on scott.dept to tom;

//给tom用户授权scott用户的dept表所有权限

SQL> revoke all on scott.dept from tom;

//撤销tom用户对于scott用户的dept表所有权限

二、配置和连接数据库1、Oracle网络配置

Oracle安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接。客户端与服务器端连接过程如下:

(1)服务器端有一个监听器监听客户端发出的连接请求

(2)用户在客户端输入用户名、口令及网络服务名发送请求

(4)客户端根据连接描述符定位监听器,并通过网络将连接信息传递给监听器

(5)监听器查询监听配置文件listener.ora,找出所要连接的数据库服务器

(6)客户端和服务器开始通信

[oracle@oracle1 ~]$ cat /u01/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

# listener.ora Network Configuration File: /u01/oracle/product/11.2.0/dbhome_1//network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER = //监听器名称

(DESCRIPTION_LIST=

(DESCRIPTION=

(ADDRESS= (PROTOCOL = TCP) //通信协议

(HOST = oracle1.amber.com) //服务器主机名或IP

(PORT = 1521)) //监听端口号

)

)

ADR_BASE_LISTENER = /u01/oracle

2、启动/关闭监听进程

lsnrctl {start|stop|status|reload|set|show|help|version|change_password}

set:设置响应参数

change_password:改变口令

3、客户端配置

此处我们在win7上安装win64_11gR2_client.zip软件包,加压到C:\,解压后生产client目录,进入后选择setup,开始安装

目前还没有生成tnsnames.ora

若测试失败检查服务器端和客户端防火墙是否拦截

[root@oracle1 ~]# /etc/init.d/iptables stop

[root@oracle1 ~]# setenforce 0

选择【文件】–【保存网络配置】,生成tnsnames.ora文件

用记事本打开可以看到:

进入DOS界面

4、监听和启动数据示例的顺序

√ 先启动监听,后启动实例

× 先启动实例,后启动监听。PMON还没来得及向监听注册示例服务

若先启动了实例,后启动的侦听,可以通过将实例的服务描述添加到listener.ora中,这样只要启动监听,对应的服务在监听中就注册了。

三、管理控制文件

控制文件是数据库创建的时候自动生成的二进制文件,其中记录了数据库的状态信息。其他任何用户都无法修改控制文件,只有数据库运行过程中,数据库实例可以修改控制文件中的信息。

1、控制文件相关信息

(1)获得控制文件的信息

方法一:

SQL> select name from v$controlfile;

NAME

——————————————————————————–

/u01/oracle/oradata/test/control01.ctl

/u01/oracle/flash_recovery_area/test/control02.ctl

方法二:

SQL> select name,value from v$parameter where name=’control_files’;

NAME

——————————————————————————–

VALUE

——————————————————————————–

control_files

/u01/oracle/oradata/test/control01.ctl, /u01/oracle/flash_recovery_area/test/con

trol02.ctl

2、控制文件内的内容

创建数据库的信息、重做日志信息、数据文件及归档日志文件记录等信息。

查看控制文件内容

SQL> select type,record_size,records_total,records_used from v$controlfile_record_section;

3、存储多重控制文件

也称为控制文件的多路复用。

特点:要求控制文件不能只有一个,要存放在不同的磁盘上。

示例:

SQL> alter system set control_files=’/u01/oracle/oradata/test/control01.ctl’,’/u01/oracle/oradata/test/control03.ctl’,’/u01/oracle/oradata/test/control04.ctl’,’/u01/oracle/flash_recovery_area/test/control02.ctl’ scope=spfile;

//控制文件多路复用,指定控制文件存放位置

SQL> select name from v$controlfile;

NAME

——————————————————————————–

/u01/oracle/oradata/test/control01.ctl

/u01/oracle/flash_recovery_area/test/control02.ctl

此时v$controlfile并未增加添加内容,但是spfile已经增加

SQL> !strings $ORACLE_HOME/dbs/spfiletest.ora |grep control_files

*.control_files=’/u01/oracle/oradata/test/control01.ctl’,’/u01/oracle/oradata

SQL> !strings $ORACLE_HOME/dbs/spfiletest.ora

test.__db_cache_size=654311424

test.__java_pool_size=16777216

test.__large_pool_size=16777216

test.__oracle_base=’/u01/oracle’#ORACLE_BASE set from environment

test.__pga_aggregate_target=1644167168

test.__sga_target=989855744

test.__shared_io_pool_size=0

test.__shared_pool_size=251658240

test.__streams_pool_size=0

*.audit_file_dest=’/u01/oracle/admin/test/adump’

*.audit_trail=’db’

*.compatible=’11.2.0.0.0′

*.control_files=’/u01/oracle/oradata/test/control01.ctl’,’/u01/oracle/oradata

/test/control03.ctl’,’/u01/oracle/oradata/test/control04.ctl’,’/u01/oracle/flash_recovery_area/test/control02.ctl’

*.db_block_size=8192

*.db_domain=”

*.db_keep_cache_size=33554432

*.db_name=’test’

*.db_recovery_file_dest=’/u01/oracle/flash_recovery_area’

*.db_recovery_file_dest_size=4070572032

*.diagnostic_dest=’/u01/oracle’

*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)’

*.log_archive_dest_1=’location=/u01/arch/’

*.memory_max_target=2621440000

*.memory_target=2634022912

*.open_cur

sors=300

*.processes=150

*.remote_login_passwordfile=’EXCLUSIVE’

*.undo_tablespace=’UNDOTBS1′

重启实例生效

SQL> shutdown immediate

SQL> !ls -lh $ORACLE_BASE/oradata/test/

总用量 1.6G

-rw-r—–. 1 oracle oinstall 11M 7月 6 10:33 benet01.dbf

-rw-r—–. 1 oracle oinstall 9.3M 7月 6 10:33 control01.ctl

-rw-r—–. 1 oracle oinstall 101M 7月 6 10:33 example01.dbf

-rw-r—–. 1 oracle oinstall 51M 7月 6 07:00 redo01.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 10:33 redo02.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 05:59 redo03.log

-rw-r—–. 1 oracle oinstall 531M 7月 6 10:33 sysaux01.dbf

-rw-r—–. 1 oracle oinstall 681M 7月 6 10:33 system01.dbf

-rw-r—–. 1 oracle oinstall 30M 7月 6 06:01 temp01.dbf

-rw-r—–. 1 oracle oinstall 101M 7月 6 10:33 undotbs01.dbf

-rw-r—–. 1 oracle oinstall 5.1M 7月 6 10:33 users01.dbf

SQL> !cp $ORACLE_BASE/oradata/test/control0{1,3}.ctl

SQL> !cp $ORACLE_BASE/oradata/test/control0{1,4}.ctl

SQL> !ls -lh $ORACLE_BASE/oradata/test/

总用量 1.6G

-rw-r—–. 1 oracle oinstall 11M 7月 6 10:33 benet01.dbf

-rw-r—–. 1 oracle oinstall 9.3M 7月 6 10:33 control01.ctl

-rw-r—–. 1 oracle oinstall 9.3M 7月 6 10:35 control03.ctl

-rw-r—–. 1 oracle oinstall 9.3M 7月 6 10:36 control04.ctl

-rw-r—–. 1 oracle oinstall 101M 7月 6 10:33 example01.dbf

-rw-r—–. 1 oracle oinstall 51M 7月 6 07:00 redo01.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 10:33 redo02.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 05:59 redo03.log

-rw-r—–. 1 oracle oinstall 531M 7月 6 10:33 sysaux01.dbf

-rw-r—–. 1 oracle oinstall 681M 7月 6 10:33 system01.dbf

-rw-r—–. 1 oracle oinstall 30M 7月 6 06:01 temp01.dbf

-rw-r—–. 1 oracle oinstall 101M 7月 6 10:33 undotbs01.dbf

-rw-r—–. 1 oracle oinstall 5.1M 7月 6 10:33 users01.dbf

SQL> startup

SQL> select name from v$controlfile;

NAME

——————————————————————————–

/u01/oracle/oradata/test/control01.ctl

/u01/oracle/oradata/test/control03.ctl

/u01/oracle/oradata/test/control04.ctl

/u01/oracle/flash_recovery_area/test/control02.ctl

4、备份和恢复控制文件

在数据文件或日志文件位置信息发生变化时(如新增数据文件到表空间等),对控制文件进行备份。(不建议使用此方法备份)

备份:

SQL> show parameter sql_trace;

NAME TYPE VALUE

———————————— ———– ——————————

sql_trace boolean FALSE

SQL> alter session set sql_trace=true;

SQL> alter database backup controlfile to trace;

SQL> show parameter sql_trace;

NAME TYPE VALUE

———————————— ———– ——————————

sql_trace boolean TRUE

SQL> show parameter user_dump_dest; //查看追踪文件存放位置

NAME TYPE VALUE

———————————— ———– ——————————

user_dump_dest string /u01/oracle/diag/rdbms/test/test/trace

SQL> !ls -lh /u01/oracle/diag/rdbms/test/test/trace

恢复:

在nomount方式下启动数据库,show parameter user_dump_dest;

利用最终文件重建控制文件

四、管理重做日志文件

重做日志也成为联机重做日志,记录对数据库进行的更改,日志写入进程(LGWR)写入重做日志文件的时间为以下几种情况:

·事务提交时

·日志缓冲区三分之一已满时

·每隔3秒

·在DBWn写入之前

应多路复用以避免文件丢失

1、读取重做日志文件信息

SQL> select group#,sequence#,bytes,members,archived,status from v$log;

GROUP# SEQUENCE# BYTES MEMBERS ARC STATUS

———- ———- ———- ———- — —————-

1 10 52428800 1 YES INACTIVE

2 11 52428800 1 NO CURRENT

3 9 52428800 1 YES INACTIVE

当前使用的是group2,还没有归档,其他两个已归档

2、多路复用重做日志

为了提高磁盘效率和防止重做日志文件的损坏,Oracle引入了一种重做日志结构。Oracle规定每个数据库只少有2个日志文件组,每组只少包含1个或者多个日志成员。

上图包含3个重做日志文件组,每组包含2个重做日志成员,存放在不同磁盘上,当第一个日志组写满后,就会停止写入,而转向第2个日志组,第2个写满后转向第3个日志组,第3个写满后转向第1个日志组写入。Oracle以这种循环方式使用重做日志组。

(1)创建重做日志文件组

格式:

alter database [数据库名] add logfile [group 组号] 文件名 [size K|M] [reuse];

示例:

SQL> select group#,members,status,bytes/1024/1024 MB from v$log;

GROUP# MEMBERSSTATUS MB

———- ———- —————- ———-

1 1 INACTIVE 50

2 1 CURRENT 50

3 1 INACTIVE 50

SQL> alter database add logfile group 4 ‘$ORACLE_BASE/oradata/test/redo04.log’ size 10m;

SQL> select group#,members,status,bytes/1024/1024 MB from v$log;

GROUP# MEMBERSSTATUS MB

———- ———- —————- ———-

1 1 INACTIVE 50

2 1 CURRENT 50

3 1 INACTIVE 50

4 1 UNUSED 10

(2)删除重做日志文件组

格式:

alter database drop logfile [group 组号];

删除文件组的限制条件:

·当前日志组不可删,若要删除先alter system switch logfile;进行日志组的切换

·活动的日志组不可删

·没有归档的日志组不可删除(前提是已运行在归档模式下)

示例:

SQL> alter database drop logfile group 4;

Database altered.

SQL> select group#,members,status,bytes/1024/1024 MB from v$log;

GROUP# MEMBERSSTATUS MB

———- ———- —————- ———-

1 1 INACTIVE 50

2 1 CURRENT 50

3 1 INACTIVE 50

(3)添加/删除重做日志文件

SQL> alter database add logfile member ‘/u01/oracle/oradata/test/redo01a.log’ to group 1,’/u01/oracle/oradata/test/redo02a.log’ to group 2;

//为group 1添加redo01a.log新成员,为group 2 添加redo02a.log新成员

SQL> select group#,members,status,bytes/1024/1024 MB from v$log;

GROUP# MEMBERSSTATUS MB

———- ———- —————- ———-

1 2 INACTIVE 50

2 2 CURRENT 50

3 1 INACTIVE 50

SQL> !ls -lh $ORACLE_BASE/oradata/test/*.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 11:19 /u01/oracle/oradata/test/redo01a.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 10:56 /u01/oracle/oradata/test/redo01.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 11:19 /u01/oracle/oradata/test/redo02a.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 11:20 /u01/oracle/oradata/test/redo02.log

-rw-r—–. 1 oracle oinstall 51M 7月 6 10:56 /u01/oracle/oradata/test/redo03.log

-rw-r—–. 1 oracle oinstall 11M 7月 6 11:12 /u01/oracle/oradata/test/redo04.log

SQL> alter database drop logfile member ‘/u01/oracle/oradata/test/redo01a.log’;

//删除重做日志redo01a.log

(4)切换日志

强制切换日志:

SQL> alter system switch logfile;

五、管理归档日志文件1、归档模式概述

(1)归档进程

是可选的后台进程,为数据库设置archivelog(归档)模式会自动回档联机重做日志文件。保留对数据库所有更改的记录。

(2)归档日志文件

数据库在允许覆盖重做日志信息之前生成联机重做日志组的副本,这些副本又称为“归档日志。”

2、配置数据归档日志

(1)查询是否开启日志回档:archive log list;

(2)关闭数据库实例:shutdown immediate;

(3)启动到mount阶段:startup mount;

(4)开启回档日志:alter database archivelog;

(5)转到open模式:alter database open;

(6)再次查询:archive log list;

示例:

SQL> archive log list;

//查看当前是否开启归档日志

Database log mode No Archive Mode

Automatic archival Disabled

Archive destination USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence 7

Current log sequence 9

SQL> !mkdir /u01/arch //创建存放归档日志的目录

SQL> alter system set log_archive_dest_1=’location=/u01/arch/’;

//更改归档日志状态为开启,并指定存放位置为/u01/arch/目录。重启实例生效

System altered.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1653518336 bytes

Fixed Size 2213896 bytes

Variable Size 956303352 bytes

Database Buffers 687865856 bytes

Redo Buffers 7135232 bytes

Database mounted.

SQL> alter database archivelog;

//开启归档日志(启动归档日志必须将实例启动为mount状态)

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/arch/

Oldest online log sequence 7

Next log sequence to archive 9

Current log sequence 9

3、获取归档日志信息

(1)查看回档日志存放路径

SQL> col destination format a20

SQL> col dest_name format a20

SQL> select dest_id,dest_name,status,destination from v$archive_dest where status=’VALID’;

DEST_IDDEST_NAME STATUS DESTINATION

———- ——————– ——— ——————–

1 LOG_ARCHIVE_DEST_1 VALID /u01/arch/

(2)获取已归档的日志文件信息

SQL> select name from v$archived_log;

NAME

—————————————-

/u01/arch/1_9_916277239.dbf

/u01/arch/1_10_916277239.dbf

/u01/arch/1_11_916277239.dbf

六、数据字典1、数据字典的定义

数据字典是Oracle存储关键信息的表和视图的集合,是数据库的说明,包含数据库中所有对象的名称和属性。

2、数据字典的分类

(1)数据字典表

属于sys用户,由数据库服务器维护,只能查看。普通用户不可以直接访问。表中的数是Oracle系统存放的系统数据,这些表的名称都用“$”结尾

(2)数据字典视图

为了方便用户对数据字典表的查询,所以建立了数据字典视图,分为:静态数据字典(静态性能视图)、动态数据字典(动态性能视图)

dictionary数据字典视图包含数据字典中一切对象的名称和说明

SQL> col comments for a40;

SQL> select * from dictionary;

(3)静态数据字典视图

静态的含义是这些视图在数据库运行期间不会发生变化

视图分类

版本

内容

DBA_

DBA

一切对象

ALL_

每个用户

用户有权查看的一切对象

USER_

每个用户

用户拥有的一切对象

示例:

SQL> select table_name,tablespace_name from user_tables;

//查询当前用户所拥有的表和所在表空间

SQL> select index_name from user_indexes;

//查询当前用户有哪些索引

SQL> select view_name from user_views;

//查看当前用户有哪些视图

SQL> select * from user_users;

//主要描述当前用户的信息

SQL> select object_name from user_objects;

//查询当前用户拥有的数据库对象

SQL> select owner,object_name,object_type from all_objects;

//查询当前用户能够访问的所有数据库对象

(4)动态数据字典视图

用于记录当前数据库的活动,会不断的进行更新,可以反应出当前实例和数据库的运行状态。只存在于数据库运行期间,实际信息都会取自内存和控制文件。DBA可以使用动态视图来监视和维护数据库。以v$或者gv$开头。

示例:

SQL> select type,record_size,records_total,records_used from v$controlfile_record_section;

//查看控制文件内容

SQL> select group#,members,archived,status from v$log;

//查看日志组状态信息

SQL> select name,created,log_mode from v$database;

//查看当前数据库的信息

NAME CREATED LOG_MODE

—————————————- ———— ————

TEST 04-JUL-16 ARCHIVELOG

发表评论

登录后才能评论