Guest User

Untitled

a guest
Mar 20th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. list_tablespaces.sql
  2. -- #!/bin/sh
  3. -- #@(#) \$Id list_tablespaces.sh, v1.0
  4. -- #
  5. -- # su - oracle
  6. -- # export ORACLE_SID=xxxx
  7. -- # export ORACLE_HOME=/opt/app/oracle/product/12.2.0
  8. -- #
  9. -- # ../sql/list_tablespaces.sh
  10. -- #
  11. -- #export NLS_LANG=JAPANESE_JAPAN.AL32UTF8
  12. -- ${ORACLE_HOME}/bin/sqlplus / as sysdba << EOF
  13. -- get tablespaces size, empty size, usage.
  14. --
  15. SET ECHO OFF
  16. SET FEEDBACK OFF
  17. SET HEADING ON
  18. SET LINESIZE 200
  19. SET PAGESIZE 50000
  20. SET TAB OFF
  21. SET TERMOUT OFF
  22. SET TRIMSPOOL ON
  23. -- SPOOL pass includes CONNECT_IDENTIFIER, USER_NAME and SYSDATE
  24. COLUMN USER_NAME NEW_VALUE USER_NAME
  25. COLUMN SYSTEM_DATE NEW_VALUE SYSTEM_DATE
  26. SELECT USER || '_' AS USER_NAME
  27. , TO_CHAR(SYSDATE, 'YYYYMMDD_HH24MISS') AS SYSTEM_DATE
  28. FROM DUAL ;
  29. -- SPOOL list_tablespaces_&&_CONNECT_IDENTIFIER._&&USER_NAME&&SYSTEM_DATE..log
  30. -- Windows ↑, UNIX/Linux では ↓ を有効に
  31. SPOOL list_tablespaces_\&&_CONNECT_IDENTIFIER._\&&USER_\NAME&&SYSTEM_DATE..log
  32. COLUMN TABLESPACE_NAME FORMAT A30
  33. COLUMN ALLOCATED FORMAT 999,999,999,990 HEADING "ALLOCATED(MB)"
  34. COLUMN USED FORMAT 999,999,999,990 HEADING "USED(MB)"
  35. COLUMN PER_USED FORMAT 990.0 HEADING "USED(%)"
  36. COLUMN FREE FORMAT 999,999,999,990 HEADING "FREE(MB)"
  37. COLUMN MAX_BYTES FORMAT 999,999,999,990 HEADING "MAX(MB)"
  38. COLUMN X FORMAT A1
  39. COLUMN COUNTS FORMAT 999,990 HEADING 'Free|Frags'
  40. COLUMN GRAPH FORMAT A40
  41. SET TIMING ON
  42. SELECT
  43. A.TABLESPACE_NAME
  44. , A.ALLOCATED / 1024 / 1024 AS ALLOCATED
  45. , (A.ALLOCATED - A.FREE) / 1024 / 1024 AS USED
  46. , (A.ALLOCATED - A.FREE) / A.ALLOCATED * 100 AS PER_USED
  47. , A.FREE / 1024 / 1024 AS FREE
  48. , A.MAX_BYTES / 1024 / 1024 AS MAX_BYTES
  49. , A.COUNTS
  50. , CASE
  51. WHEN A.COUNTS >= 2 THEN -- 2以上は表領域の断片化(フラグメンテーション)発生
  52. 'X'
  53. END AS X
  54. , NVL(RPAD(TRIM(RPAD
  55. (' ', 20 * ROUND((A.ALLOCATED - A.FREE) / A.ALLOCATED, 1) + 1, '■'))
  56. , 20, '□'), CASE
  57. WHEN NP.VALUE = 'AL32UTF8' THEN
  58. '□□□□□□□□□□□□□□□□□□□□' -- 20
  59. ELSE
  60. '□□□□□□□□□□'
  61. END) AS GRAPH
  62. FROM(
  63. SELECT
  64. TS.TABLESPACE_NAME
  65. , SUM(DF.BYTES) AS ALLOCATED
  66. , NVL(SUM(FS.BYTES), 0) AS FREE
  67. , NVL(MAX(FS.BYTES), 0) AS MAX_BYTES
  68. , COUNT(FS.BYTES) AS COUNTS
  69. FROM DBA_TABLESPACES TS
  70. LEFT OUTER JOIN DBA_DATA_FILES DF
  71. ON DF.TABLESPACE_NAME = TS.TABLESPACE_NAME
  72. LEFT OUTER JOIN DBA_FREE_SPACE FS
  73. ON FS.TABLESPACE_NAME = TS.TABLESPACE_NAME
  74. GROUP BY
  75. TS.TABLESPACE_NAME
  76. ) A
  77. -- INNER JOIN V$NLS_PARAMETERS NP
  78. -- Windows ↑, UNIX/Linux では ↓ を有効に
  79. -- INNER JOIN V\$NLS_PARAMETERS NP
  80. INNER JOIN V$NLS_PARAMETERS NP
  81. ON NP.PARAMETER = 'NLS_CHARACTERSET'
  82. ORDER BY
  83. A.TABLESPACE_NAME ;
  84. SPOOL OFF
  85. SET TIMING OFF
  86. COLUMN TABLESPACE_NAME CLEAR
  87. COLUMN ALLOCATED CLEAR
  88. COLUMN USED CLEAR
  89. COLUMN PER_USED CLEAR
  90. COLUMN FREE CLEAR
  91. COLUMN MAX_BYTES CLEAR
  92. COLUMN COUNTS CLEAR
  93. COLUMN X CLEAR
  94. COLUMN GRAPH CLEAR
  95. SET ECHO ON
  96. SET FEEDBACK ON
  97. SET HEADING ON
  98. SET LINESIZE 80
  99. SET TERMOUT ON
  100. -- exit
  101. -- EOF
  102. -- #export NLS_LANG=en_US
  103. -- # ---------------------- End of list_tablespaces.sh ------------------------------
Add Comment
Please, Sign In to add comment