Oracle 데이터베이스 초기화 매개 변수 설정에 실패했기 때문에 복원하려고했습니다.

잊지 않도록 메모.

일어난 일


sqlplus 로부터 초기화 파라미터를 잘못 설정한 것을 깨닫지 못하고, 기세로 shutdown 를 하면 두 번 다시 기동하지 않게 되었다.
초기화 파라미터를 고쳐 주지 않으면 기동하지 않아! 라고하는 것 같았기 때문에 어떻게 든


환경


  • Oracle Cloud
  • Oracle Linux 7.8
  • 호스트 이름: odgb

  • Oracle Database 19c (DBCS)
  • 고유 이름: odgb_nrt1ws
  • CDB: odgb


  • 용어 메모


  • pfile... 초기화 파라미터 파일. 텍스트 편집기로 편집이 가능. 사고했을 때 spfile에서 변환하여 작성한다. 현재의 데이타베이스로, 직접 사용하는 것은 적게 된 것 같지만, pfile를 직접 지정해 기동도 할 수 있다.
  • spfile... 서버 매개변수 파일. 「alter」문으로 편집이 가능. 데이터베이스 시작 시 매번 이 파일을 읽습니다. 텍스트 편집기에서 직접 수정할 수는 없습니다.

  • 했던 일


  • 데이터베이스의 고유 이름 확인
  • $ sudo su - oracle
    $ ls /u01/app/oracle/diag/rdbms/
    odgb_nrt1ws
    
  • spfile 확인
  • $ sudo su - grid
    $ asmcmd ls -l +DATA/odgb_nrt1ws/PARAMETERFILE/
    Type           Redund  Striped  Time             Sys  Name
    PARAMETERFILE  UNPROT  COARSE   OCT 03 16:00:00  Y    spfile.286.1048251613
    
  • spfile을 손에 복사
  • $ sudo su - grid
    $ asmcmd cp +DATA/ODGB_NRT1WS/PARAMETERFILE/spfile.286.1048251613 /tmp
    copying +DATA/ODGB_NRT1WS/PARAMETERFILE/spfile.286.1048251613 -> /tmp/spfile.286.1048251613
    
  • pfile 작성
  • $ sudo su - oracle
    $ sqlplus / as sydba
    sql> create pfile='/tmp/tmp.pfile' from spfile='/tmp/spfile.286.1048251613';
    File created.
     
    sql> exit
    $ ls -l /tmp
    -rw-r--r-- 1 oracle asmadmin 3705 Oct  3 16:35 tmp.pfile
    
  • pfile 편집
    초기화 파라미터 설정 시에 잘못 설정한 것을 vim 로 편집해 간다
    편집할 때는 다음 사이트의 「기재 내용의 우선도」의 내용에 주의한다
    "*."가 붙지 않은 것은 일단 삭제했다.
    htps : /// ch ぁ b. 그리고 xs 어라. 이. jp/아 r ゔぇ s/158

  • 이번 실패한 「sga_max_size」의 값도 확실히 수정
    "sga_target"도 바뀌었기 때문에 우선 수정
    $ vim /tmp/tmp.pfile
    ~
    *.sga_max_size=20401094656
    *.sga_target=14495514624
    ~
    ⬇︎
    ~
    *.sga_max_size=6G
    *.sga_target=3G
    ~
    
  • 만든 "pfile"로 데이터베이스 작성
    수정 값을 잘못했다. 오류 내용처럼 수정
  • $ sudo su - oracle
    $ sqlplus / as sysdba
    sql> startup mount pfile='/tmp/tmp.pfile';
    ORA-00821: Specified value of sga_target 3072M is too small, needs to be at least 4656M
    ORA-01078: システム・パラメータの処理に失敗しました
    

    수정 후, 이번은 제대로 기동. .
    SQL> startup mount pfile='/tmp/tmp.pfile';
    ORACLEインスタンスが起動しました。
    
    Total System Global Area 6442449872 bytes
    Fixed Size                  9149392 bytes
    Variable Size            4848615424 bytes
    Database Buffers         1560281088 bytes
    Redo Buffers               24403968 bytes
    データベースがマウントされました。
    SQL> 
    
  • 재작성한 「pfile」로부터 「spfile」을 작성
    그렇다면 데이터베이스를 중지하십시오
  • sql> create spfile='+DATA' from pfile='/tmp/tmp.pfile';
    
    ファイルが作成されました。
    sql> shutdown  
    
    データベースがディスマウントされました。
    ORACLEインスタンスがシャットダウンされました。
    
  • 새로운 "spfile"확인
    하나가 증가하고 있음을 알 수 있습니다
  • $ sudo su - grid
    $ asmcmd ls -l +DATA/ODGB_NRT1WS/PARAMETERFILE/
    Type           Redund  Striped  Time             Sys  Name
    PARAMETERFILE  UNPROT  COARSE   OCT 03 17:00:00  Y    spfile.285.1052845549
    PARAMETERFILE  UNPROT  COARSE   OCT 03 16:00:00  Y    spfile.286.1048251613
    
  • 새로운 "spfile"로 데이터베이스 시작
  • $ sudo su - oracle
    $ srvctl modify database -db odgb_nrt1ws -spfile +DATA/odgb_nrt1ws/PARAMETERFILE/spfile.285.1052845549
    $ srvctl start database -db odgb_nrt1ws
    $ srvctl status database -db odgb_nrt1ws
     Instance odgb is running on node odgb
    $ sqlplus / as sysdba
    
    racle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.7.0.0.0
    に接続されました。
    

    어떻게든 복구. . .



    정상적으로 움직이게 되었다.
    초기화 파라미터를 만지면 실수하면 위험하다는 것을 깨달았으므로 조심합니다. . .

    좋은 웹페이지 즐겨찾기