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


    口令文件

    口令文件审核

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

    1. [root@oracle-db-19c ~]# su - oracle
    2. [oracle@oracle-db-19c ~]$
    3. [oracle@oracle-db-19c ~]$ id oracle
    4. uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1502(dba),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
    5. [oracle@oracle-db-19c ~]$
    6. [oracle@oracle-db-19c ~]$ su -
    7. Password:
    8. [root@oracle-db-19c ~]# gpasswd -d oracle dba
    9. Removing user oracle from group dba
    10. [root@oracle-db-19c ~]#
    11. [root@oracle-db-19c ~]# id oracle
    12. uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
    13. [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

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

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

    1. Version 19.3.0.0.0
    2. [oracle@oracle-db-19c ~]$ sqlplus / as sysdba
    3. SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:26:20 2022
    4. Version 19.3.0.0.0
    5. Copyright (c) 1982, 2019, Oracle. All rights reserved.
    6. ERROR:
    7. ORA-01017: invalid username/password; logon denied
    8. Enter user-name:
    9. ERROR:
    10. ORA-01017: invalid username/password; logon denied
    11. Enter user-name:
    12. ERROR:
    13. ORA-01017: invalid username/password; logon denied
    14. SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
    15. [oracle@oracle-db-19c ~]$ sqlplus sys/sys as sysdba
    16. SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:26:52 2022
    17. Version 19.3.0.0.0
    18. Copyright (c) 1982, 2019, Oracle. All rights reserved.
    19. Connected to:
    20. Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    21. Version 19.3.0.0.0
    22. SQL> exit
    23. Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    24. Version 19.3.0.0.0
    25. [oracle@oracle-db-19c ~]$

    Step3 查看口令文件在何处?

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

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

    1. [oracle@oracle-db-19c dbs]$ ls -ltr
    2. total 24
    3. -rw-r--r--. 1 oracle oinstall 3079 May 14 2015 init.ora
    4. -rw-r-----. 1 oracle oinstall 24 Nov 2 15:03 lkCDB1
    5. -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1_bkp
    6. -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1
    7. -rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
    8. -rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
    9. [oracle@oracle-db-19c dbs]$ rm -rf orapwcdb1
    10. [oracle@oracle-db-19c dbs]$
    11. [oracle@oracle-db-19c dbs]$
    12. [oracle@oracle-db-19c dbs]$
    13. [oracle@oracle-db-19c dbs]$ sqlplus sys/sys as sysdba
    14. SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:34:07 2022
    15. Version 19.3.0.0.0
    16. Copyright (c) 1982, 2019, Oracle. All rights reserved.
    17. ERROR:
    18. ORA-01017: invalid username/password; logon denied
    19. Enter user-name:

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

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

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

    1. [oracle@oracle-db-19c dbs]$ pwd
    2. /u01/app/oracle/product/19.3.0/dbhome_1/dbs
    3. [oracle@oracle-db-19c dbs]$ orapwd file=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/orapwcdb1 password=1qazxsw23edc#
    4. [oracle@oracle-db-19c dbs]$ ll
    5. total 28
    6. -rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
    7. -rw-r--r--. 1 oracle oinstall 3079 May 14 2015 init.ora
    8. -rw-r-----. 1 oracle oinstall 24 Nov 2 15:03 lkCDB1
    9. -rw-r-----. 1 oracle oinstall 6144 Nov 19 17:57 orapwcdb1
    10. -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1_bkp
    11. -rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
    12. [oracle@oracle-db-19c dbs]$
    13. [oracle@oracle-db-19c ~]$
    14. [oracle@oracle-db-19c ~]$
    15. [oracle@oracle-db-19c ~]$
    16. [oracle@oracle-db-19c ~]$ sqlplus sys/1qazxsw23edc# as sysdba
    17. SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 18:00:17 2022
    18. Version 19.3.0.0.0
    19. Copyright (c) 1982, 2019, Oracle. All rights reserved.
    20. Connected to:
    21. Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    22. Version 19.3.0.0.0
    23. SQL>

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

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

    参数文件

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

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

    1. SQL> column name for a40
    2. SQL> column value for a40
    3. SQL> set linesize 200
    4. SQL> set pagesize 200
    5. SQL> select name,value from v$parameter;
    6. NAME VALUE
    7. ---------------------------------------- ----------------------------------------
    8. lock_name_space
    9. processes 320
    10. sessions 504
    11. timed_statistics TRUE
    12. timed_os_statistics 0
    13. resource_limit TRUE
    14. license_max_sessions 0
    15. license_sessions_warning 0
    16. long_module_action TRUE
    17. standby_db_preserve_states NONE
    18. instance_abort_delay_time 0
    19. cpu_count 4
    20. cpu_min_count 4
    21. instance_groups
    22. event
    23. sga_max_size 629145600
    24. use_large_pages TRUE
    25. pre_page_sga TRUE
    26. shared_memory_address 0
    27. hi_shared_memory_address 0
    28. lock_sga FALSE
    29. processor_group_name
    30. allow_group_access_to_sga FALSE
    31. sga_min_size 0
    32. shared_pool_size 0
    33. large_pool_size 0
    34. java_pool_size 0
    35. streams_pool_size 0
    36. shared_pool_reserved_size 8598323
    37. java_soft_sessionspace_limit 0
    38. java_max_sessionspace_size 0

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

    1. SQL>
    2. SQL> column name for a40
    3. SQL> column value for a40
    4. SQL> set pagesize 200
    5. SQL> set linesize 200
    6. SQL> select name,value from v$parameter where isdefault<>'TRUE';
    7. NAME VALUE
    8. ---------------------------------------- ----------------------------------------
    9. processes 320
    10. nls_language AMERICAN
    11. nls_territory AMERICA
    12. sga_target 629145600
    13. control_files /u02/oradata/CDB1/control01.ctl, /u02/or
    14. adata/CDB1/control02.ctl
    15. db_block_size 8192
    16. compatible 19.0.0
    17. db_create_file_dest /u02/oradata
    18. undo_tablespace UNDOTBS1
    19. remote_login_passwordfile EXCLUSIVE
    20. dispatchers (PROTOCOL=TCP) (SERVICE=cdb1XDB)
    21. audit_file_dest /u01/app/oracle/admin/cdb1/adump
    22. audit_trail DB
    23. db_name cdb1
    24. open_cursors 300
    25. pga_aggregate_target 209715200
    26. diagnostic_dest /u01/app/oracle
    27. enable_pluggable_database TRUE
    28. 18 rows selected.
    29. SQL>

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

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

    参数的分类

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

    1. SQL> select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE!='FALSE' order by 2;
    2. NAME ISSYS_MOD
    3. ---------------------------------------- ---------
    4. backup_tape_io_slaves DEFERRED
    5. recyclebin DEFERRED
    6. session_cached_cursors DEFERRED
    7. private_temp_table_prefix DEFERRED
    8. audit_file_dest DEFERRED
    9. olap_page_pool_size DEFERRED
    10. object_cache_max_size_percent DEFERRED
    11. sort_area_size DEFERRED
    12. sort_area_retained_size DEFERRED
    13. client_statistics_level DEFERRED
    14. object_cache_optimal_size DEFERRED
    15. sessions IMMEDIATE
    16. timed_statistics IMMEDIATE
    17. timed_os_statistics IMMEDIATE

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

     

    1. SQL> select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE='FALSE';
    2. NAME ISSYS_MOD
    3. ---------------------------------------- ---------
    4. lock_name_space FALSE
    5. processes FALSE
    6. standby_db_preserve_states FALSE
    7. instance_groups FALSE
    8. event FALSE
    9. sga_max_size FALSE
    10. use_large_pages FALSE
    11. pre_page_sga FALSE
    12. shared_memory_address FALSE
    13. hi_shared_memory_address FALSE
    14. lock_sga FALSE
    15. processor_group_name FALSE
    16. allow_group_access_to_sga FALSE
    17. shared_pool_reserved_size FALSE
    1. SQL>
    2. SQL> select count(*) from v$parameter;
    3. COUNT(*)
    4. ----------
    5. 445
    6. SQL> show user;
    7. USER is "SYS"
    8. SQL>

    参数文件的分类:

    spfile : server parameter file

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

    只能放在server端

    一致性比较好

    只能使用sql命令修改

    spfile的优先级高于pfile

    命名规则: spfile.ora & spfile.ora

    pfile: parameter file

    文本文件

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

    pfile灵活但是副本太多

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

    命名规则: init.ora

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

    找到自己的参数文件!

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

    alter system set open_cursors=500 scope=memory;

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

    alter system set open_cursors=400 scope=spfile;

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

    1. alter system set open_cursors=600 scope=both;
    2. alter system set open_cursors=600;

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

    1. alter system set db_unique_name='pdb1' scope=spfile;
    2. memory_target=50g

    1. SQL> show parameter open_cursors
    2. NAME TYPE VALUE
    3. ------------------------------------ ----------- ------------------------------
    4. open_cursors integer 300
    5. SQL> show spparameter open_cursors
    6. SID NAME TYPE VALUE
    7. -------- ----------------------------- ----------- ----------------------------
    8. * open_cursors integer 300
    9. SQL>
    10. [oracle@oracle-db-19c dbs]$
    11. [oracle@oracle-db-19c dbs]$ strings spfilecdb1.ora | grep open_cursors
    12. *.open_cursors=300
    13. [oracle@oracle-db-19c dbs]$

    使用pfile:

    1. create pfile from spfile;
    2. 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'

  • 相关阅读:
    通过Forcebot压测实践简述“并发模式”与“RPS模式”两种模式的区别
    Vue学习笔记-全局事件总线
    SpringBoot+百度地图+Mysql实现中国地图可视化
    部署前后端分离项目
    大语言模型对齐技术 最新论文及源码合集(外部对齐、内部对齐、可解释性)
    房屋户型图识别方法AI自适应墙体识别
    element 表单自定义效验规则
    树莓派(香橙派)通过.NET IoT 操作SPI编写屏幕驱动 顺手做个四足机器人(一)
    sql语句-如何以一个表中的数据为条件据查询另一个表中的数据
    解决npm install报错: No module named gyp
  • 原文地址:https://blog.csdn.net/u011868279/article/details/127939444