\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Adam Cumming} \pdfinfo{ /Title (oracle-multitenant.pdf) /Creator (Cheatography) /Author (Adam Cumming) /Subject (Oracle Multitenant Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{ED0000} \definecolor{LightBackground}{HTML}{FDEFEF} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Oracle Multitenant Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Adam Cumming} via \textcolor{DarkBackground}{\uline{cheatography.com/121025/cs/21994/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Adam Cumming \\ \uline{cheatography.com/adam-cumming} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 1st May, 2020.\\ Updated 30th April, 2020.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{tabularx}{17.67cm}{x{6.5626 cm} x{10.7074 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{Essential Terminology}} \tn % Row 0 \SetRowColor{LightBackground} Multitenant & The Oracle Architecture that consists of a CDB, and one or more PDBs \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Container Database (CDB) & A traditional database instance, but has the ability to support PDBs \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} Pluggable Database (PDB) & A collection of Tablespaces which supports it's own independant Role and User security, and can be easily moved between CDBs \tn % Row Count 12 (+ 6) % Row 3 \SetRowColor{white} Root Database & The instance administrative layer that sets above PDBs. Users and Roles here must be preceded by c\#\# \tn % Row Count 17 (+ 5) % Row 4 \SetRowColor{LightBackground} Seed Database & A PDB that remains offline to be used as a template for creating new blank PDBs \tn % Row Count 21 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{6.9167 cm} x{6.9167 cm} x{3.0366 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{17.67cm}}{\bf\textcolor{white}{Daily Use Commands (from SQL command line)}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{3}{x{17.67cm}}{{\bf{Connect to Contaner or PDB}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{3}{x{17.67cm}}{`CONN {\emph{\textless{}user\textgreater{}}}/{\emph{\textless{}pwd\textgreater{}}}@//{\emph{\textless{}host\textgreater{}}}:{\emph{\textless{}listener port\textgreater{}}}/{\emph{\textless{}service\textgreater{}}} {\emph{\{as sysdba\}}};`} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{3}{x{17.67cm}}{`CONN {\emph{\textless{}user\textgreater{}}}/{\emph{\textless{}pwd\textgreater{}}}@//{\emph{\textless{}tns\_entry\textgreater{}}} {\emph{\{as sysdba\}}};`} \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{3}{x{17.67cm}}{{\bf{Display Current Container or PDB}}} \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} `SHOW CON\_NAME;` & `SELECT \seqsplit{SYS\_CONTEXT('USERENV'},'CON\_NAME')` & \tn % Row Count 9 (+ 3) % Row 5 \SetRowColor{white} `SHOW CON\_ID`; & ` FROM DUAL;` & \tn % Row Count 10 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{3}{x{17.67cm}}{{\bf{List Containers and PDBs on Instance}}} \tn % Row Count 11 (+ 1) % Row 7 \SetRowColor{white} `SELECT PDB\_NAME, Status` & `SELECT Name, Open\_Mode` & \seqsplit{`SELECT} Name,PDB` \tn % Row Count 14 (+ 3) % Row 8 \SetRowColor{LightBackground} ` FROM DBA\_PDBS` & `FROM V\$PDBS` & `FROM \seqsplit{V\$SERVICES`} \tn % Row Count 17 (+ 3) % Row 9 \SetRowColor{white} `ORDER BY PDB\_Name;` & `ORDER BY Name;` & `ORDER BY Name;` \tn % Row Count 20 (+ 3) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{3}{x{17.67cm}}{{\bf{Change Container or PDB}}} \tn % Row Count 21 (+ 1) % Row 11 \SetRowColor{white} `ALTER SESSION SET container={\emph{\textless{}name\textgreater{}}};` & `ALTER SESSION SET \seqsplit{container=cdb\$root;`} & \tn % Row Count 24 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Cloning/Creating a PDB}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{First, set your source and target datafile paths... \newline % Row Count 2 (+ 2) `ALTER SESSION SET PDB\_FILE\_NAME\_CONVERT='{\emph{\textless{}/seed path/\textgreater{}}}','{\emph{\textless{}/target path/\textgreater{}}}';` \newline % Row Count 4 (+ 2) Then run the create command from the target root container... \newline % Row Count 6 (+ 2) `CREATE PLUGGABLE DATABASE {\emph{\textless{}New PDB Name\textgreater{}}}` \newline % Row Count 7 (+ 1) \seqsplit{`~~~~~~~~~~~~~~~~~~~~~~~~~~ADMIN} USER {\emph{\textless{}Username\textgreater{}}}` \newline % Row Count 11 (+ 4) \seqsplit{`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~IDENTIFIED} BY {\emph{\textless{}Password\textgreater{}}}` \newline % Row Count 16 (+ 5) \seqsplit{`~~~~~~~~~~~~~~~~~~~~~~~~~~FROM} {\emph{\textless{}Source PDB{[}@dblink{]}\textgreater{}}}` \newline % Row Count 20 (+ 4) Finally, Open the newly created database... \newline % Row Count 21 (+ 1) `ALTER PLUGGABLE DATABASE {\emph{\textless{}target pdb\textgreater{}}} OPEN;`% Row Count 22 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{17.67cm}}{NOTE: Creating a PDB is just cloning from the seed db. \newline ~~~~~~~~~~~{\emph{{[}@dblink{]}}} is optional and used when creating PDB from existing PDB on another instance. \newline ~~~~~~~~~~~If using dblink, the link user should be an administrative user on the source PDB} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Managing a Multitenant Database}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{{\bf{Startup and Shutdown}} \newline % Row Count 1 (+ 1) Startup and Shutdown of a multitenant database function the same as on a regular database, however, if connected to pluggable database, only the pluggable database shuts down. If connected to the root container database then the entire instance shuts down. Pluggable databases also have their own commands that can be run from the root container or other pluggable db. \newline % Row Count 9 (+ 8) `ALTER PLUGGABLE DATABASE {\emph{\textless{}name\textgreater{}}}OPEN READ WRITE{\emph{\{RESTRICTED\}\{FORCE\}}};` \newline % Row Count 11 (+ 2) `ALTER PLUGGABLE DATABASE {\emph{\textless{}name\textgreater{}}} OPEN READ ONLY {\emph{\{RESTRICTED\}\{FORCE\}}};` \newline % Row Count 13 (+ 2) `ALTER PLUGGABLE DATABASE {\emph{\textless{}name\textgreater{}}} OPEN UPGRADE {\emph{\{RESTRICTED\}}};` \newline % Row Count 15 (+ 2) `ALTER PLUGGABLE DATABASE {\emph{\textless{}name\textgreater{}}} CLOSE {\emph{\{IMMEDIATE\}}};` \newline % Row Count 17 (+ 2) To retain state as startup state of container... \newline % Row Count 18 (+ 1) `ALTER PLUGGABLE DATABASE {\emph{\textless{}name\textgreater{}}} SAVE STATE;` \newline % Row Count 19 (+ 1) {\bf{Roles and Users}} \newline % Row Count 20 (+ 1) Common Users and Roles must be created in the root container and prefixed by the characters `c\#\#` \newline % Row Count 22 (+ 2) Local Users and Roles must be created in pdb \newline % Row Count 23 (+ 1) {\bf{Granting Roles and Privileges}} \newline % Row Count 24 (+ 1) `GRANT {\emph{\textless{}privelege/role\textgreater{}}} TO {\emph{\textless{}user\textgreater{}}} CONTAINER={\emph{\textless{}PDB name or ALL\textgreater{}}};` \newline % Row Count 26 (+ 2) If local only, grant from pdb and omit container argument.% Row Count 28 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Backup and Recovery}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{{\bf{Backup}} \newline % Row Count 1 (+ 1) RMAN connection to root container... \newline % Row Count 2 (+ 1) Normal Backup will capture full instance \newline % Row Count 3 (+ 1) For just Root Container \newline % Row Count 4 (+ 1) ` BACKUP DATABASE ROOT` \newline % Row Count 5 (+ 1) For Pluggable Databases \newline % Row Count 6 (+ 1) ` BACKUP PLUGGABLE DATABASE {\emph{\textless{}pdb1,pdb2,pdb3\textgreater{}}}` \newline % Row Count 8 (+ 2) RMAN connection to pluggable database will only work on that pdb \newline % Row Count 10 (+ 2) {\bf{Restore}} \newline % Row Count 11 (+ 1) Connect to root container. Normal restore is full instance. For pdb... \newline % Row Count 13 (+ 2) `RUN \{ALTER PLUGGABLE DATABASE {\emph{\textless{}pdb\textgreater{}}} CLOSE;` \newline % Row Count 14 (+ 1) ~~~~~` SET UNTIL TIME "{\emph{\textless{}timeset value\textgreater{}}}";` \newline % Row Count 16 (+ 2) ~~~~~` RESTORE PLUGGABLE DATABASE {\emph{\textless{}pdb\textgreater{}}};` \newline % Row Count 18 (+ 2) ~~~~~` RECOVER PLUGGABLE DATABASE {\emph{\textless{}pdb\textgreater{}}};` \newline % Row Count 20 (+ 2) ~~~~~` ALTER PLUGGABLE DATABASE {\emph{\textless{}pdb\textgreater{}}}OPEN; \}`% Row Count 22 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Moving PDB's (Unplugging/Plugging in PDB)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{{\bf{Exporting/Unplugging An Existing PDB}} \newline % Row Count 1 (+ 1) To unplug a database, use the following commands. It is recommended that the path used match the datafile storage location. \newline % Row Count 4 (+ 3) `ALTER PLUGGABLE DATABASE {\emph{\textless{}pdb\_name\textgreater{}}} CLOSE;` \newline % Row Count 5 (+ 1) `ALTER PLUGGABLE DATABASE {\emph{\textless{}pdb\_name\textgreater{}}} UNPLUG INTO '{\emph{\textless{}/path/\textgreater{}\textless{}name\textgreater{}}}.xml';` \newline % Row Count 7 (+ 2) `DROP PLUGGABLE DATABASE {\emph{\textless{}pdb\_name\textgreater{}}} KEEP DATAFILES;` \newline % Row Count 9 (+ 2) {\bf{Importing/Plugging in PDB into a CDB}} \newline % Row Count 10 (+ 1) Before importing/plugging in a PDB into a CDB a small procedure should be run to Validate the integrity and compatibility of the PDB. \newline % Row Count 13 (+ 3) `SET SERVEROUTPUT ON` \newline % Row Count 14 (+ 1) `DECLARE` \newline % Row Count 15 (+ 1) `~~~~~l\_result BOOLEAN;` \newline % Row Count 17 (+ 2) `BEGIN` \newline % Row Count 18 (+ 1) `~~~~~l\_result := \seqsplit{DBMS\_PDB.CHECK\_PLUG\_COMPATIBILITY(`} \newline % Row Count 20 (+ 2) \seqsplit{`~~~~~~~~~~~~~~~~~~~~~~~~~~PDB\_DESCR\_FILE} =\textgreater{} '{\emph{\textless{}/path/\textgreater{}\textless{}name\textgreater{}}}.xml',` \newline % Row Count 24 (+ 4) `~~~~~~~~~~~~~~~~~~~~~~~~~~PDB\_NAME~~~~~~~=\textgreater{} '{\emph{\textless{}name\textgreater{}}}');` \newline % Row Count 29 (+ 5) `~~~~~IF l\_result THEN` \newline % Row Count 30 (+ 1) } \tn \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Moving PDB's (Unplugging/Plugging in PDB) (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{\seqsplit{`~~~~~~~~~~DBMS\_OUTPUT.PUT\_LINE('Compatible}, OK to Proceed');` \newline % Row Count 3 (+ 3) `~~~~~ELSE` \newline % Row Count 4 (+ 1) \seqsplit{`~~~~~~~~~~DBMS\_OUTPUT.PUT\_LINE('Incompatible}, See \seqsplit{PDB\_PLUG\_IN\_VIOLATIONS} for details');` \newline % Row Count 7 (+ 3) `~~~~~END IF;` \newline % Row Count 8 (+ 1) `END;` \newline % Row Count 9 (+ 1) If the pdb is validated, then use the following commands to import/plug it in. Reference the xml file path specified during export, and the datafile path... \newline % Row Count 13 (+ 4) `CREATE PLUGGABLE DATABASE {\emph{\textless{}new\_pdb\_name\textgreater{}}} USING '{\emph{\textless{}/path/\textgreater{}\textless{}name\textgreater{}}}.xml'` \newline % Row Count 15 (+ 2) `~~~~~~~FILE\_NAME\_CONVERT=('{\emph{\textless{}/source path/\textgreater{}}}','{\emph{\textless{}/dest path/\textgreater{}}}');` \newline % Row Count 18 (+ 3) `ALTER PLUGGABLE DATABASE {\emph{\textless{}new\_pdb\_name\textgreater{}}} OPEN;`% Row Count 19 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{PROXY Database Functionality}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{A special type of PDB is a Proxy PDB. A Proxy PDB essentially is a PDB that is linked to another PDB so that if a PDB is being migrated to another environment and there is a desire to not modify all source code to new location references first, they can still use the old references on a Proxy and the actions will take place on the New DB. \newline % Row Count 7 (+ 7) To setup, first setup a dblink to the pluggable target \newline % Row Count 9 (+ 2) `CREATE PLUGGABLE DATABASE {\emph{\textless{}proxy pdb name\textgreater{}}} AS PROXY FROM {\emph{\textless{}target pdb\textgreater{}}}@{\emph{\textless{}dblink\textgreater{}}};` \newline % Row Count 11 (+ 2) {\emph{NOTE: dblink may be dropped after proxy db is created}}% Row Count 13 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{17.67cm}}{In a proxy DB the alter Database and Alter Pluggable Database commands apply to the proxy db. All other DDL applies to the target db.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Misc Other Multitenant Management Commands}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{{\bf{Cloning from NonCDB to CDB}} \newline % Row Count 1 (+ 1) NonCDB must support multitenant and use dblink on NONCDB to connect \newline % Row Count 3 (+ 2) DBLink user must have CREATE SESSION and CREATE PLUGGABLE DATABASE privileges \newline % Row Count 5 (+ 2) `CREATE PLUGGABLE DATABASE {\emph{\textless{}new\_pdb\textgreater{}}} FROM NON\$CDB@{\emph{\textless{}dblink\textgreater{}}}` \newline % Row Count 7 (+ 2) `~~~~~~~FILE\_NAME\_CONVERT=('{\emph{\textless{}/source datafile path/\textgreater{}}},'{\emph{\textless{}/target datafile path/\textgreater{}}}');` \newline % Row Count 10 (+ 3) \seqsplit{`@ORACLE\_HOME/rdbms/admin/noncdb\_to\_pdb}.sql` \newline % Row Count 11 (+ 1) `ALTER PLUGGABLE DATABASE {\emph{\textless{}target pdb\textgreater{}}} OPEN;` \newline % Row Count 12 (+ 1) {\bf{Moving a PDB}} \newline % Row Count 13 (+ 1) `CREATE PLUGGABLE DATABASE {\emph{\textless{}new pdb\textgreater{}}} FROM {\emph{\textless{}old pdb\textgreater{}}}@{\emph{\textless{}dblink\textgreater{}}} RELOCATE;` \newline % Row Count 15 (+ 2) `ALTER PLUGGABLE DATABASE {\emph{\textless{}new pdb\textgreater{}}} OPEN;` \newline % Row Count 16 (+ 1) {\bf{Removing a PDB}} \newline % Row Count 17 (+ 1) `ALTER PLUGGABLE DATABASE {\emph{\textless{}name\textgreater{}}} CLOSE;` \newline % Row Count 18 (+ 1) `DROP PLUGGABLE DATABASE {\emph{\textless{}name\textgreater{}}} INCLUDING DATAFILES;` \newline % Row Count 20 (+ 2) {\bf{Exporting/Unplugging a pdb to a single compressed file}} \newline % Row Count 22 (+ 2) `ALTER PLUGGABLE DATABASE {\emph{\textless{}pdb\_name\textgreater{}}} UNPLUG INTO '{\emph{\textless{}/path/\textgreater{}\textless{}filename\textgreater{}}}.pdb';` \newline % Row Count 24 (+ 2) {\bf{Importing/Plugging in a pdb from a single compressed file}} \newline % Row Count 26 (+ 2) `CREATE PLUGGABLE DATABASE {\emph{\textless{}new pdb name\textgreater{}}} USING '{\emph{\textless{}/path/\textgreater{}\textless{}filename\textgreater{}}}.pdb';`% Row Count 28 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{17.67cm}}{Note that compressed pdb files for export and import are suffixed by .pdb and are a zip fle format.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \end{document}