如何管理oralce口令文件和参数文件

口令文件

口令文件审核

Step 1: 使用root账号将 oracle dba的权限移除

[root@oracle-db-19c ~]# su - oracle
[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ id oracle
uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1502(dba),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ su -
Password: 
[root@oracle-db-19c ~]# gpasswd -d oracle dba
Removing user oracle from group dba
[root@oracle-db-19c ~]# 
[root@oracle-db-19c ~]# id oracle
uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
[root@oracle-db-19c ~]# 

注意:如何恢复已经删除的权限:

gpasswd -d userName groupName

gpasswd -d oracle dba

usermod -a -G groupName userName


usermod -a -G dba oracle

gpasswd -a oracle dba

[root@oracle-db-19c ~]# id oracle
uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
[root@oracle-db-19c ~]# groupadd -g 1502 dba
groupadd: group 'dba' already exists
[root@oracle-db-19c ~]# usermod -a -G dba oracle
[root@oracle-db-19c ~]# id oracle               
uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1502(dba),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
[root@oracle-db-19c ~]# 

Step2 : 核查使用 sqlplus / as sysdba是否可以登录。结果是无法登录,需要口令方可登录。

Version 19.3.0.0.0
[oracle@oracle-db-19c ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:26:20 2022
Version 19.3.0.0.0

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

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
[oracle@oracle-db-19c ~]$ sqlplus sys/sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:26:52 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
[oracle@oracle-db-19c ~]$ 

Step3 查看口令文件在何处?

oracle@oracle-db-19c ~]$ cd $ORACLE_HOME/dbs
[oracle@oracle-db-19c dbs]$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1/dbs
[oracle@oracle-db-19c dbs]$ ls -ltr
total 20
-rw-r--r--. 1 oracle oinstall 3079 May 14  2015 init.ora
-rw-r-----. 1 oracle oinstall   24 Nov  2 15:03 lkCDB1
-rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1
-rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
-rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
[oracle@oracle-db-19c dbs]$ 
[oracle@oracle-db-19c dbs]$ ls -ltr orapwcdb1
-rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1
[oracle@oracle-db-19c dbs]$ cp -p orapwcdb1 orapwcdb1_bkp
[oracle@oracle-db-19c dbs]$ 

Step 4.口令文件删除后就无法登录到超级用户了。

[oracle@oracle-db-19c dbs]$ ls -ltr
total 24
-rw-r--r--. 1 oracle oinstall 3079 May 14  2015 init.ora
-rw-r-----. 1 oracle oinstall   24 Nov  2 15:03 lkCDB1
-rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1_bkp
-rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1
-rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
-rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
[oracle@oracle-db-19c dbs]$ rm -rf orapwcdb1
[oracle@oracle-db-19c dbs]$ 
[oracle@oracle-db-19c dbs]$ 
[oracle@oracle-db-19c dbs]$ 
[oracle@oracle-db-19c dbs]$ sqlplus sys/sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:34:07 2022
Version 19.3.0.0.0

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

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: 

Step5. 如何解决口令文件丢失或口令文件损坏(切记使用绝对路径不要使用

orapwd file=$ORALCE_HOME/dbs/orapwcdb1 password=1qazxsw23edc#

否则,OPW-00001: Unable to open password-file

[oracle@oracle-db-19c dbs]$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1/dbs
[oracle@oracle-db-19c dbs]$ orapwd file=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/orapwcdb1 password=1qazxsw23edc#                
[oracle@oracle-db-19c dbs]$ ll
total 28
-rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
-rw-r--r--. 1 oracle oinstall 3079 May 14  2015 init.ora
-rw-r-----. 1 oracle oinstall   24 Nov  2 15:03 lkCDB1
-rw-r-----. 1 oracle oinstall 6144 Nov 19 17:57 orapwcdb1
-rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1_bkp
-rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
[oracle@oracle-db-19c dbs]$ 

[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ sqlplus sys/1qazxsw23edc# as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 18:00:17 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> 

sys的安全审核需要通过口令文件。

拥有dba角色的权限就可以所有用户权限。

参数文件

什么是参数? 控制数据库属性行为的开关。

如何查看参数和参数的取值?

SQL> column name for a40
SQL> column value for a40
SQL> set linesize 200
SQL> set pagesize 200
SQL> select name,value from v$parameter;

NAME                                     VALUE
---------------------------------------- ----------------------------------------
lock_name_space
processes                                320
sessions                                 504
timed_statistics                         TRUE
timed_os_statistics                      0
resource_limit                           TRUE
license_max_sessions                     0
license_sessions_warning                 0
long_module_action                       TRUE
standby_db_preserve_states               NONE
instance_abort_delay_time                0
cpu_count                                4
cpu_min_count                            4
instance_groups
event
sga_max_size                             629145600
use_large_pages                          TRUE
pre_page_sga                             TRUE
shared_memory_address                    0
hi_shared_memory_address                 0
lock_sga                                 FALSE
processor_group_name
allow_group_access_to_sga                FALSE
sga_min_size                             0
shared_pool_size                         0
large_pool_size                          0
java_pool_size                           0
streams_pool_size                        0
shared_pool_reserved_size                8598323
java_soft_sessionspace_limit             0
java_max_sessionspace_size               0

如何查看非默认值的参数?

SQL> 
SQL> column name for a40
SQL> column value for a40
SQL> set pagesize 200
SQL> set linesize 200
SQL> select name,value from v$parameter where isdefault<>'TRUE';

NAME                                     VALUE
---------------------------------------- ----------------------------------------
processes                                320
nls_language                             AMERICAN
nls_territory                            AMERICA
sga_target                               629145600
control_files                            /u02/oradata/CDB1/control01.ctl, /u02/or
                                         adata/CDB1/control02.ctl

db_block_size                            8192
compatible                               19.0.0
db_create_file_dest                      /u02/oradata
undo_tablespace                          UNDOTBS1
remote_login_passwordfile                EXCLUSIVE
dispatchers                              (PROTOCOL=TCP) (SERVICE=cdb1XDB)
audit_file_dest                          /u01/app/oracle/admin/cdb1/adump
audit_trail                              DB
db_name                                  cdb1
open_cursors                             300
pga_aggregate_target                     209715200
diagnostic_dest                          /u01/app/oracle
enable_pluggable_database                TRUE

18 rows selected.

SQL> 

使用sqlplus环境命令查看参数取值

show parameter xxxxx ---> 查看内存值
show spparameter xxxxx ---> 查看spfile中的值

参数的分类

动态参数:内存中的当前值可以被修改。

SQL> select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE!='FALSE' order by 2;

NAME                                     ISSYS_MOD
---------------------------------------- ---------
backup_tape_io_slaves                    DEFERRED
recyclebin                               DEFERRED
session_cached_cursors                   DEFERRED
private_temp_table_prefix                DEFERRED
audit_file_dest                          DEFERRED
olap_page_pool_size                      DEFERRED
object_cache_max_size_percent            DEFERRED
sort_area_size                           DEFERRED
sort_area_retained_size                  DEFERRED
client_statistics_level                  DEFERRED
object_cache_optimal_size                DEFERRED
sessions                                 IMMEDIATE
timed_statistics                         IMMEDIATE
timed_os_statistics                      IMMEDIATE

静态参数 :内存中的当前值是不可以被修改的。

 

SQL> select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE='FALSE';

NAME                                     ISSYS_MOD
---------------------------------------- ---------
lock_name_space                          FALSE
processes                                FALSE
standby_db_preserve_states               FALSE
instance_groups                          FALSE
event                                    FALSE
sga_max_size                             FALSE
use_large_pages                          FALSE
pre_page_sga                             FALSE
shared_memory_address                    FALSE
hi_shared_memory_address                 FALSE
lock_sga                                 FALSE
processor_group_name                     FALSE
allow_group_access_to_sga                FALSE
shared_pool_reserved_size                FALSE
SQL> 
SQL> select count(*) from v$parameter;

  COUNT(*)
----------
       445

SQL> show user;
USER is "SYS"
SQL> 

参数文件的分类:

spfile : server parameter file

二进制格式,脱离文件系统的束缚

只能放在server端

一致性比较好

只能使用sql命令修改

spfile的优先级高于pfile

命名规则: spfile<sid>.ora & spfile.ora

pfile: parameter file

文本文件

可以放在server端也可以放在client端

pfile灵活但是副本太多

可以使用文本编辑器直接修改

命名规则: init<sid>.ora

参数文件保存的位置: $ORACLE_HOME/dbs

找到自己的参数文件!

使用spfile启动的实例,如何修改动态参数的内存值?

alter system set open_cursors=500 scope=memory;

使用spfile启动的实例,如何修改动态参数在参数文件中的取值?

alter system set open_cursors=400 scope=spfile;

使用spfile启动的实例,如何修改动态参数在参数文件中的取值和内存的取值?

alter system set open_cursors=600 scope=both;
alter system set open_cursors=600;

使用spfile启动的实例,如何修改静态参数在参数文件中的取值?重新启动实例生效!!! startup force

alter system set db_unique_name='pdb1' scope=spfile;

memory_target=50g

SQL> show parameter open_cursors

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     300
SQL> show spparameter open_cursors

SID      NAME                          TYPE        VALUE
-------- ----------------------------- ----------- ----------------------------
*        open_cursors                  integer     300
SQL> 

[oracle@oracle-db-19c dbs]$ 
[oracle@oracle-db-19c dbs]$ strings spfilecdb1.ora  | grep open_cursors
*.open_cursors=300
[oracle@oracle-db-19c dbs]$ 

使用pfile:

create pfile from spfile;
create spfile from pfile;

使用pfile 启动实例

alter system set 命令没有scope选项

alter system set 命令只能修改内存

使用pfile 启动的实例,如何修改动态参数的内存值?

alter system set open_cursors=500;

使用pfile启动的实例,如果修改动态参数在参数文件中的取值?

使用vi直接修改。

使用pfile启动的实例,如何同时修改动态参数在参数文件中的取值和内存中的取值?

先用alter system set 命令,再使用vi

使用pfile启动的实例,如何修改静态参数在参数文件中的取值?

直接使用vi直接修改

修改pfile的默认路径

使用临时的pfile启动实例

startup pfile='/home/oracle/l.ora'

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值