Advertisement
thesuhu

Oracle Tablespace

Dec 27th, 2020 (edited)
2,946
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # CREATE a NEW TABLESPACE named tbs1 WITH SIZE 1MB
  2. # DATAFILE bisa ditambah PATH pada FILE dbf: /opt/oracle/product/12.2.0.1/dbhome_1/dbs
  3. # bisa diganti /opt/oracle/oradata/ORCLCDB/ORCLPDB1/
  4. CREATE TABLESPACE tbs1
  5.    DATAFILE 'tbs1_data.dbf'
  6.    SIZE 1m;
  7.  
  8. # find its information BY querying data FROM the dba_data_files VIEW
  9. SELECT
  10.    tablespace_name,
  11.    file_name,
  12.    bytes / 1024/ 1024  MB
  13. FROM
  14.    dba_data_files;
  15.  
  16. # resize the TABLESPACE
  17. ALTER DATABASE
  18.    DATAFILE 'tbs1.dbf'
  19.    RESIZE 10m;
  20.  
  21. # ADD datafile IN TABLESPACE
  22. ALTER TABLESPACE
  23.    users
  24. ADD DATAFILE
  25.    '/u01/app/oracle/oradata/EE/tbs1.dbf'
  26. SIZE 100m
  27.  
  28. # The SECOND way TO avoid this issue, WHEN creating a NEW TABLESPACE
  29. CREATE TABLESPACE tbs1
  30.    DATAFILE 'tbs1.dbf'
  31.    SIZE 1m
  32.    AUTOEXTEND 20m;
  33.  
  34. # hapus TABLESPACE kosongan
  35. DROP TABLESPACE tbs1;
  36.  
  37. # hapus tabelspace yang ada isi
  38. DROP TABLESPACE tbs2
  39.     INCLUDING CONTENTS;
  40. # DROP sekaligus datafilenya
  41. DROP TABLESPACE tbs2 including contents AND datafiles;
  42. # jika udah hapus TABLESPACE lupa hapus datafile, bisa dengan cara CREATE TABLE SPACE datafile existing, kemudian DROP sekaligus datafilenya
  43. # perintah CREATE dengan existing datafile, sama dengan di atas tapi tanpa menyebut SIZE 100m
  44.  
  45. # lihat free SIZE TABLESPACE
  46. SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024/1024 "FREE SPACE(GB)"
  47. FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;
  48.  
  49. # alternatif lihat free SIZE TABLESPACE
  50. --Size of All Table Space
  51.  
  52. --1. Used Space
  53. SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS "USED SPACE(IN GB)" FROM USER_SEGMENTS GROUP BY TABLESPACE_NAME;
  54. --2. Free Space
  55. SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS "FREE SPACE(IN GB)" FROM   USER_FREE_SPACE GROUP BY TABLESPACE_NAME;
  56.  
  57. --3. Both Free & Used
  58. SELECT USED.TABLESPACE_NAME, USED.USED_BYTES AS "USED SPACE(IN GB)",  FREE.FREE_BYTES AS "FREE SPACE(IN GB)"
  59. FROM
  60. (SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS USED_BYTES FROM USER_SEGMENTS GROUP BY TABLESPACE_NAME) USED
  61. INNER JOIN
  62. (SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS FREE_BYTES FROM  USER_FREE_SPACE GROUP BY TABLESPACE_NAME) FREE
  63. ON (USED.TABLESPACE_NAME = FREE.TABLESPACE_NAME);
  64.  
  65. # lihat datafile dalam tabelspace
  66.   SELECT SUBSTR (df.tablespace_name, 1, 20)
  67.              "Tablespace Name",
  68.          SUBSTR (df.file_name, 1, 80)
  69.              "File Name",
  70.          ROUND (df.bytes / 1024 / 1024, 0)
  71.              "Size (M)",
  72.          DECODE (e.used_bytes, NULL, 0, ROUND (e.used_bytes / 1024 / 1024, 0))
  73.              "Used (M)",
  74.          DECODE (f.free_bytes, NULL, 0, ROUND (f.free_bytes / 1024 / 1024, 0))
  75.              "Free (M)",
  76.          DECODE (e.used_bytes,
  77.                  NULL, 0,
  78.                  ROUND ((e.used_bytes / df.bytes) * 100, 0))
  79.              "% Used"
  80.     FROM dba_data_files df,
  81.          (  SELECT file_id, SUM (bytes) used_bytes
  82.               FROM dba_extents
  83.           GROUP BY file_id) E,
  84.          (  SELECT MAX (bytes) free_bytes, file_id
  85.               FROM dba_free_space
  86.           GROUP BY file_id) f
  87.    WHERE e.file_id(+) = df.file_id AND df.file_id = f.file_id(+)
  88. ORDER BY df.tablespace_name, df.file_name;
  89.  
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement