Oracle

Aus XccesS Wiki
Version vom 6. Januar 2026, 10:48 Uhr von Hendrik (Diskussion | Beiträge) (→‎SAP* kopieren (000 nach 200))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Beschreibung

Download

Installation

Konfiguration

SAP* löschen

sqlplus / as sysdba

DELETE FROM SAPSR3.USR02 WHERE MANDT = '000' AND BNAME = 'SAP*';
COMMIT;

SAP* kopieren (000 nach 200)

INSERT INTO SAPSR3.USR02 (
    MANDT, BNAME, BCODE, GLTGV, GLTGB, USTYP, 
    CLASS, LOCNT, UFLAG, ACCNT, ANAME, ERDAT, 
    TRDAT, LTIME, OCOD1, BCDA1, CODV1, OCOD2, 
    BCDA2, CODV2, OCOD3, BCDA3, CODV3, OCOD4, 
    BCDA4, CODV4, OCOD5, BCDA5, CODV5, VERSN, 
    CODVN, TZONE, ZBVMASTER, PASSCODE, PWDCHGDATE, PWDSTATE, 
    RESERVED, PWDHISTORY, PWDLGNDATE, PWDSETDATE, PWDINITIAL, PWDLOCKDATE, 
    PWDSALTEDHASH, SECURITY_POLICY
)
SELECT 
    '200', BNAME, BCODE, GLTGV, GLTGB, USTYP, 
    CLASS, LOCNT, UFLAG, ACCNT, ANAME, ERDAT, 
    TRDAT, LTIME, OCOD1, BCDA1, CODV1, OCOD2, 
    BCDA2, CODV2, OCOD3, BCDA3, CODV3, OCOD4, 
    BCDA4, CODV4, OCOD5, BCDA5, CODV5, VERSN, 
    CODVN, TZONE, ZBVMASTER, PASSCODE, PWDCHGDATE, PWDSTATE, 
    RESERVED, PWDHISTORY, PWDLGNDATE, PWDSETDATE, PWDINITIAL, PWDLOCKDATE, 
    PWDSALTEDHASH, SECURITY_POLICY
FROM SAPSR3.USR02 
WHERE MANDT = '000' AND BNAME = 'SAP*';
COMMIT;

Tablespaces und Files anzeigen lassen

SELECT file_name, bytes/1024/1024 AS size_mb FROM dba_data_files WHERE tablespace_name = 'PSAPSR3' ORDER BY file_name;

Tablespace anlegen

CREATE TABLESPACE PSAPSR3740X DATAFILE '/oracle/PZ0/sapdata1/sr3740x_1' SIZE 10M;

Erweiterung ohne ASM

Tablespace-Belegung ermitteln

Belegung aller Tablespaces in Prozent ermitteln:

with MBYTES as(
  select tablespace_name, 
         SUM(bytes)/1024/1024 as Akt, 
         SUM(decode(maxbytes,0,bytes,maxbytes))/1024/1024 as ZMax 
  from dba_data_files 
  group by tablespace_name
), 
MFREE as(
  select tablespace_name, 
         SUM(bytes)/1024/1024 as Free    
  from dba_free_space 
  group by tablespace_name
) 
select MBYTES.tablespace_name, 
       ROUND((AKT-FREE)/ZMAX*100,2) as BelegtProz  
from MBYTES, MFREE 
where MFREE.tablespace_name = MBYTES.tablespace_name 
order by ROUND((AKT-FREE)/ZMAX*100,2) desc;

Beispiel-Ergebnis:

TABLESPACE_NAME                BELEGTPROZ
------------------------------ ----------
PSAPSR3                             89.43
PSAPSR3702                          33.32
PSAPSR3USR                          20.26
PSAPUNDO                             6.55
SYSTEM                               5.05
SYSAUX                               4.05

Verfügbaren Speicherplatz ermitteln

Im Betriebssystem ermitteln, in welchem data-Laufwerk am meisten Platz für die Erweiterung vorhanden ist:

df -h | grep oracle

Beispiel-Ausgabe:

p11data01/data01      98G    68G    30G    70%    /oracle/P11/data01
p11data02/data02     215G   172G    43G    81%    /oracle/P11/data02
p11data03/data03      98G    51G    47G    52%    /oracle/P11/data03

An der Datenbank anmelden

sqlplus / as sysdba

Ausgabe formatieren

Für eine übersichtlichere Darstellung:

set pages 9999
set lin 180
col file_name for a60

Datafiles anzeigen

Datafiles zum Tablespace anzeigen:

select file_name, bytes/1024/1024 
from dba_data_files 
where tablespace_name = '<TABLESPACE>';

Vorlage:Hinweis

Beispiel-Ausgabe:

FILE_NAME                                                    BYTES/1024/1024
------------------------------------------------------------ ---------------
/oracle/P11/data01/beispiel_data_01.dbf                                20480
/oracle/P11/data02/beispiel_data_02.dbf                                20480
/oracle/P11/data03/beispiel_data_03.dbf                                30720
/oracle/P11/data02/beispiel_data_04.dbf                                20480

Datafile erweitern

Existierendes Datafile vergrößern

Wenn ein Datafile erweitert werden kann:

alter database datafile '/oracle/P11/data02/beispiel_04.dbf' resize 30G;

Vorlage:Hinweis

Überwachung auf OS-Ebene:

du -h <FILENAME>

Kontrolle:

select file_name, bytes/1024/1024 
from dba_data_files 
where tablespace_name = '<TABLESPACE>';

Beispiel nach Erweiterung:

FILE_NAME                                                    BYTES/1024/1024
------------------------------------------------------------ ---------------
/oracle/P11/data01/beispiel_data_01.dbf                                20480
/oracle/P11/data02/beispiel_data_02.dbf                                20480
/oracle/P11/data03/beispiel_data_03.dbf                                30720
/oracle/P11/data02/beispiel_data_04.dbf                                30720

Neues Datafile anlegen

Falls kein existierendes Datafile erweitert werden kann:

alter tablespace BEISPIEL add datafile '/oracle/P11/data03/beispiel.dbf' size 100M;

Vorlage:Hinweis

Überwachung auf OS-Ebene:

du -h <FILENAME>

Kontrolle:

select file_name, bytes/1024/1024 
from dba_data_files 
where tablespace_name = '<TABLESPACE>';

Beispiel nach Anlegen:

FILE_NAME                                                    BYTES/1024/1024
------------------------------------------------------------ ---------------
/oracle/P11/data01/beispiel_data_01.dbf                                20480
/oracle/P11/data02/beispiel_data_02.dbf                                20480
/oracle/P11/data03/beispiel_data_03.dbf                                30720
/oracle/P11/data02/beispiel_data_04.dbf                                20480
/oracle/P11/data03/beispiel_data_05.dbf                                  100

Tempfile erweitern

Tempfiles anzeigen:

select file_name, bytes/1024/1024 
from dba_temp_files;

Tempfile hinzufügen:

alter tablespace <TABLESPACE> add tempfile '+DATA' size 25G;

Tablespace mit neuer Datei erweitern

alter tablespace PSAPSR3740X add datafile '/oracle/PZ0/sapdata1/sr3740x_2' size 30G;

Backupmodus einstellen

Wird benötigt um ggf. die sapdata online kopieren zu können

SQL> ALTER DATABASE BEGIN BACKUP;
To find if database or any tablespace is in backup mode, the status in V$BACKUP is ACTIVE
SQL> select * from v$backup;
SQL> ALTER DATABASE END BACKUP;

SYSTEM Passwort ändern

sqlplus / as sysdba ALTER USER system IDENTIFIED BY "<PASSWORT>";

PSAPUNDO - Undo Tablespace

SELECT file_name,
       tablespace_name,
       autoextensible,
       bytes/1024/1024 AS size_mb,
       maxbytes/1024/1024 AS max_size_mb
FROM dba_data_files
WHERE tablespace_name = 'PSAPUNDO';

ALTER DATABASE DATAFILE '/oracle/R08/sapdata1/undo_1/undo.data1' AUTOEXTEND ON NEXT 100M MAXSIZE 20G;

Update

Test

Freien Speicherplatz anzeigen

select a.tablespace_name, a.free_bytes*100/b.total_bytes as "Free(%)"
from
(select tablespace_name, sum(bytes) free_bytes
from dba_free_space
group by tablespace_name) a,
(select tablespace_name, sum(bytes) total_bytes
from dba_data_files
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;

Codeschnipsel

Nützliche Links