DBA Hub

📋Steps in this guide1/10

HOW TO STARTUP/SHUTDOWN CDB AND PDB ON LINUX

HOW TO STARTUP/SHUTDOWN CDB AND PDB ON LINUX BEST PRACTICE: ALWAYS PLEASE SWITCH TO PDB and then do your task to avoid accidental issues. Contents

oracle clusteringintermediate
by OracleDba
13 views
1

Overview

BEST PRACTICE: ALWAYS PLEASE SWITCH TO PDB and then do your task to avoid accidental issues. Contents 1. Startup CDB

Code/Command (click line numbers to comment):

1
2
BEST PRACTICE:
ALWAYS PLEASE SWITCH TO PDB and then do your task to avoid accidental issues.
2

Section 2

1. Startup CDB 2. Startup PDB 2.1 Startup PDB from CDB

Code/Command (click line numbers to comment):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[oracle@localhost ~]$
cat /etc/oratab | grep -i CDB2
CDB2
:/u01/app/oracle/product/12.2.0.1:N
[oracle@localhost ~]$
[oracle@localhost ~]$
. oraenv
ORACLE_SID = [
CDB2
] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@localhost ~]$
sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sun Jul 15 17:30:11 2018

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

Connected to an idle instance.

SQL>
startup;
ORACLE instance started.

Total System Global Area 1577058304 bytes
Fixed Size                  8793208 bytes
Variable Size             503317384 bytes
Database Buffers         1056964608 bytes
Redo Buffers                7983104 bytes
Database mounted.
Database opened.
SQL>

SQL>
select name,open_mode,cdb from v$database;
NAME      OPEN_MODE            CDB
--------- -------------------- ---
CDB2      READ WRITE
YES  <------
SQL>

SQL>
show con_id con_name
CON_ID
------------------------------
1

CON_NAME
------------------------------
CDB$ROOT  <-----
SQL>
3

Section 3

2.2 Startup PDB with in PDB -- Switch to PDB from CDB alter session set container=PDB2; <----

Code/Command (click line numbers to comment):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
SQL>
col name for a30
SQL>
select name,open_mode,con_id,dbid from v$containers;
NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       READ WRITE          1  680230459
PDB$SEED                       READ ONLY           2 2993936271
PDB1                           MOUNTED             3  627484885
PDB2                           MOUNTED             4  891811039
PDB3                           MOUNTED             5  424568091
PDB4                           MOUNTED             6 2306285303
6 rows selected.

SQL>


SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
3
PDB1
MOUNTED  <------
4 PDB2                           MOUNTED
         5 PDB3                           MOUNTED
         6 PDB4                           MOUNTED

SQL>

SQL>
ALTER PLUGGABLE DATABASE
PDB1
OPEN;
Pluggable database altered.

SQL> 

SQL>
select name,open_mode,con_id,dbid from v$containers;
NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       READ WRITE          1  680230459
PDB$SEED                       READ ONLY           2 2993936271
PDB1
READ WRITE          3  627484885 <----
PDB2                           MOUNTED             4  891811039
PDB3                           MOUNTED             5  424568091
PDB4                           MOUNTED             6 2306285303

6 rows selected.

SQL>

-- Switch to PDB from CDB
SQL>
alter session set container=PDB2;  <----
Session altered.

SQL>
show con_name
CON_NAME
------------------------------
PDB2
SQL> show con_id

CON_ID
------------------------------
4
SQL>

SQL>
show pdbs;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 PDB2
MOUNTED   <-----
SQL>

SQL>
startup;
Pluggable Database opened.
SQL>
-- OR --
SQL>
ALTER DATABASE OPEN;
Database altered.

SQL>
-- OR --
SQL>
ALTER PLUGGABLE DATABASE OPEN;
Pluggable database altered.

SQL>

SQL>
show pdbs;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4
PDB2
READ WRITE
NO
SQL>

SQL>
select CON_ID,NAME,OPEN_MODE from v$pdbs;
CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         4
PDB2
READ WRITE <------
SQL>
4

Section 4

-- OR -- 2.3 Startup ALL PDBs from CDB -- Switch to CDB from PDB

Code/Command (click line numbers to comment):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
-- Switch to CDB from PDB
SQL>
conn / as sysdba
Connected.
SQL> 

SQL>
select name,open_mode,cdb from v$database;
NAME                           OPEN_MODE            CDB
------------------------------ -------------------- ---
CDB2                           READ WRITE
YES <----
SQL>
show con_id
CON_ID
------------------------------
1

SQL>
show con_name
CON_NAME
------------------------------
CDB$ROOT  <---
SQL>

SQL>
ALTER PLUGGABLE DATABASE
ALL
OPEN;
Pluggable database altered.

SQL>
SQL>
SHOW PDBS;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
         5 PDB3                           READ WRITE NO
         6 PDB4                           READ WRITE NO
SQL>
5

Section 5

ALTER PLUGGABLE DATABASE ALL OPEN; 3. Shutdown PDB 3.1 Shutdown PDB from CDB

Code/Command (click line numbers to comment):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
SQL>
show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>

SQL>
SHOW PDBS;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1
READ WRITE
NO
         4 PDB2
READ WRITE
NO
         5 PDB3
READ WRITE
NO
         6 PDB4
READ WRITE
NO
SQL>

SQL>
ALTER PLUGGABLE DATABASE
PDB1
CLOSE IMMEDIATE;
Pluggable database altered.

SQL>

SQL>
SHOW PDBS;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3
PDB1
MOUNTED
<-----
4 PDB2                           READ WRITE NO
         5 PDB3                           READ WRITE NO
         6 PDB4                           READ WRITE NO
SQL>
6

Section 6

ALTER PLUGGABLE DATABASE PDB1 CLOSE IMMEDIATE; <----- 3.2 Shutdown PDB with in PDB -- Switch to PDB from CDB

Code/Command (click line numbers to comment):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
-- Switch to PDB from CDB
SQL>
ALTER SESSION SET CONTAINER=PDB2;
<----
Session altered.

SQL>
SHOW CON_NAME
CON_NAME
------------------------------
PDB2 <-----
SQL>

SQL>
SHOW PDBS;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4
PDB2
READ WRITE
NO
<------ R/W
SQL>

SQL>
ALTER DATABASE CLOSE;
<-- This command work only inside CDB
ALTER DATABASE CLOSE
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database
SQL> 

SQL>
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
Pluggable database altered.

SQL>
--- OR ---
SQL>
SHUT IMMEDIATE;
-- PLEASE DO NOT RUN FROM CDB, IT WILL CLOSE CDB AND ALL PDBs inside CDB
Pluggable Database closed.
SQL>

SQL>
SHOW PDBS;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4
PDB2
MOUNTED  <----
SQL>
7

Section 7

ALTER SESSION SET CONTAINER=PDB2; <---- <------ R/W * ERROR at line 1: ORA-65040: operation not allowed from within a pluggable database --- OR --- 3.3 Shutdown ALL PDBs from CDB
8

Section 8

-- Switch to CDB from PDB ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE; 4. Shutdown CDB PLEASE DO NOT run SHUT IMMEDIATE OR ALTER DATABASE CLOSE command from CDB, it will shutdown ALL PDBs,PDB$SEED & CDB$ROOT inside CDB. Example for the same below

Code/Command (click line numbers to comment):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- Switch to CDB from PDB
SQL>
CONN / AS SYSDBA
Connected.
SQL>

SQL>
SHOW CON_NAME
CON_NAME
------------------------------
CDB$ROOT <----
SQL>

SQL>
SHOW PDBS;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
3 PDB1                           MOUNTED
         4 PDB2                           MOUNTED
         5 PDB3
READ WRITE
NO
         6 PDB4
READ WRITE
NO
SQL>

SQL>
ALTER PLUGGABLE DATABASE
ALL
CLOSE IMMEDIATE;
Pluggable database altered.

SQL>
SQL>
SHOW PDBS;
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1
MOUNTED
4 PDB2
MOUNTED
5 PDB3
MOUNTED
6 PDB4
MOUNTED
SQL>
9

Section 9

PLEASE DO NOT run SHUT IMMEDIATE OR ALTER DATABASE CLOSE command from CDB, it will shutdown ALL PDBs,PDB$SEED & CDB$ROOT inside CDB. Example for the same below CDB$ROOT READ WRITE 1 680230459 <-- R/W CDB$ROOT Recommendation: ALWAYS PLEASE SWITCH TO PDB and then do your task

Code/Command (click line numbers to comment):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
SQL>
select name,open_mode,con_id,dbid from v$containers;
NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT
READ WRITE
1  680230459 <-- R/W
PDB$SEED                       READ ONLY           2 2993936271
PDB1                           MOUNTED             3  627484885
PDB2                           MOUNTED             4  891811039
PDB3                           MOUNTED             5  424568091
PDB4                           MOUNTED             6 2306285303

6 rows selected.

SQL>

SQL>
SHOW CON_NAME
CON_NAME
------------------------------
CDB$ROOT
SQL>

SQL>
SHUT IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

SQL>
!ps -ef | grep pmon
oracle   13612 12669  0 19:00 pts/0    00:00:00 /bin/bash -c ps -ef | grep pmon
oracle   13614 13612  0 19:00 pts/0    00:00:00 grep pmon

SQL>

SQL>
col name for a30
SQL>
select name,open_mode,con_id,dbid from v$containers;
NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       READ WRITE          1  680230459
PDB$SEED                       READ ONLY           2 2993936271
PDB1
READ WRITE
3  627484885
PDB2
READ WRITE
4  891811039
PDB3
READ WRITE
5  424568091
PDB4
READ WRITE
6 2306285303

6 rows selected.

SQL>
show con_name
CON_NAME
------------------------------
CDB$ROOT <----
SQL>
SQL>
ALTER DATABASE CLOSE IMMEDIATE;
Database altered.

SQL>
SQL>
select name,open_mode,con_id,dbid from v$containers;
NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT
MOUNTED             1  680230459
PDB$SEED                       MOUNTED             2 2993936271
PDB1
MOUNTED
3  627484885
PDB2
MOUNTED
4  891811039
PDB3
MOUNTED
5  424568091
PDB4
MOUNTED
6 2306285303

6 rows selected.

SQL>
SQL>
shut immediate;
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
!ps -ef | grep pmon
oracle   14495 12669  0 19:16 pts/0    00:00:00 /bin/bash -c ps -ef | grep pmon
oracle   14497 14495  0 19:16 pts/0    00:00:00 grep pmon

SQL>
10

Section 10

Recommendation: ALWAYS PLEASE SWITCH TO PDB and then do your task Caution : Your use of any information or materials on this website is entirely at your own risk. It is provided for educational purposes only. It has been tested internally, however, we do not guarantee that it will work for you. Ensure that you run it in your test environment before using.

Comments (0)

Please to add comments

No comments yet. Be the first to comment!