Um unnötigen Bugs und ähnlichen Wirrungen der Softwareentwicklung aus den Weg zu gehen, eine Englische Version des Betriebssystems wählen und Usernamen mit „einfachen“ Buchstaben (ohne Umlaute etc.!) und Verzeichnisse immer ohne „ “ Leerzeichen angeben!
Ablauf:
Zu beachten:
Ein Clone der Datenbank per RMAN über das Netz ( Eine Oracle Datenbank 11g R2 mit RMAN "DUPLICATE TARGET DATABASE TO xxxx FROM ACTIVE DATABASE " klonen] kann nicht durchgeführt werden, da der 19c RMAN kann nicht mit der 12c Datenbank so einfach zusammenarbeitet.
Auch sollten vor der Umstellung alle DB Jobs auf DBMS_SCHEDULER umgestellt werden, mit der aktuellen 19c steht DMBS_JOB nicht mehr zur Verfügung, die JOBS werden automatisch nach DBMS_SCHEDULER migriert. Diese Migration hat aber leider bzgl. NLS Settings und andere Einstellungen Ihre Tücken, besser zuvor bereits alles umstellen! Siehe dazu auch ⇒ Oracle DBMS_JOB Migration nach Scheduler in Oracle 19c
Risiko bei der Umstellung von 11g nach 19c:
Prinzipiell kann auch eine 11g so migriert werden, auf folgenden Punkt aber dringend achten ⇒ Oracle 12c R2 - Password Handing - ORA-1017 Invalid Username or Password after upgrade
Speicher
Disk:
Wie :
Die Virtuelle Platte (VHD) des Windows 2019 Server kann auch mit einer VMWare Workstation 14 genützt werden.
Dazu VHD von Microsoft herunterladen (Test Version ist hier erhältlich ⇒ https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2019 ) und in ein Verzeichnis kopieren.
Unter VMWare einen neue Virtuelle Maschine mit 4GB RAM anlegen und dabei als IDE Platte die VHD Datei angeben.
Zusätzlich eine D Platte für die Oracle Datenbank Software und die Test Datenbank anlegen.
Für die Software 10GB einplanen + die eigentlichen Datenbank Daten, in meinen Fall nochmals 40GB.
Bei ersten Start die Sprache der Maschine auswählen (alles US) und DE für die Tastatur wählen.
Passwort für den Administrator Account setzen und an der Maschine anmelden.
Die D Platte wie gewohnt einrichten, um die D Platte aber auch als d: verwenden zu können muss das DVD Laufwerk auf einen anderen Buchstaben gemappt werden.
Das geht am einfachsten wie gewohnt im alten Server Manager, diesen mit „compmgmt.msc“ aufrufen, im neuen Server Manager leider diese Funktion nicht wie gewohnt gefunden.
Danach die die VMWare Tools installieren und neu starten (an die neue Funktion mit der rechten untern Ecke und dem Zahnrad denken um die Power Button von Windows 2012 zu erreichen).
Umgebung optimieren
Backup Überlegungen:
Neuen Maschinenname vergeben (wie 12CWIN2012ORA01) und in die Domain aufnehmen.
Nach der Installation sollte der Name und die Domain sich <fc #800000>NIE mehr ändern</fc>!
(Neuer Server Manager ⇒ Local Server ⇒ Computer Name anklicken, gewohnten Dialog ausfüllen)
Prüfen das der Name der Maschine auch sauber im Netzwerk aufgelöst werden kann!
ping 12CWIN2012ORA01
Das Netzwerk kontrollieren und bei Bedarf IPV6 so weit wie möglich deaktivieren
Laut Microsoft ist das abschalten von IPV6 keine so gute Idee mehr!
In einer Single DB Umgebung kann auch darauf verzichtet werden bzw. vorher gut in das Thema einlesen!
In neuen Umgebungen verzichte ich inzwischen auf diese Schritte, allerdings sollte dann geprüft werden das der Oracle Listener auf wirklich auf der IP V4 Adresse läuft!
So würde IP V6 deaktiviert:
Administrative Powershell Session starten cd $ENV:systemroot\system32\drivers\etc notepad .\hosts
cmd reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 0xFFFFFFFF
Falls später der Listener NUR auf der IPV6 Adresse hört, Host Datei anlegen.
Oracle Software Owner zum Beispiel „ORASYSTEM“ als User lokal oder in der Domain anlegen und in die lokale Admin Gruppe auf dem Server explizit aufnehmen!
Auch hier am einfachsten erst mal wieder mit „compmgmt.msc“ bzw. „lusrmgr.msc“ arbeiten!
Vergeben der Local Security Policies für diesen User über Server Manager, Tools in der oberen Bar → Local Security Policy auswählen
Knoten Local Policies → User Rights Assignment
Dem Account ORASYSTEM die folgenden Policies (Richtlinien) zuweisen:
Single Instance
RAC
Über den Oracle Installer wird dann später ein eigener lokalen User für die Datenbank Prozesse angelegt!
Prüfen das sich der Oracle Software Owner selber die Laufwerke der Maschine mit „net“ mounten kann:
net use \\localhost\c$ net use \\localhost\d$ The command completed successfully.
Auf C: oder D: einen Ordner TEMP erstellen und systemweit diesen kurzen Pfad d:\temp für TMP und TEMP setzen.
Umgebungseinstellungen für den User und das System anpassen!
Aufruf „Advanced System Settings“ ( Control Panel\System and Security\System\Advanced System Settings ) oder einfach über die Suche eingeben und suchen lassen Reiter Advanced:
Internet Explorer Security ausschalten, falls lokal mit der DB Console gearbeitet werden soll Server Manager starten, Local Server anwählen, auf der rechten Seite unter Windows Error Reporting! siehe auch http://blog.blksthl.com/2012/11/28/how-to-disable-ie-enhanced-security-in-windows-server-2012/
Daher alternativ Firefox oder Chrome installieren und sich nicht mit dem Mist ärgern .-).
Bildschirmschoner auf „Blank“ stellen bzw. deaktivieren (Control Panel\Appearance\Display)
Hintergrund Bild mit Maschinen Info setzen um immer sofort die richtige Umgebung zu erkennen wie grün = Prod , gelb = Standby etc.
Region and Language (English US)
Control Panel → Clock, Language, and Region →Region
Welcome Screen and new user account settings Hacken setzen bei:
Listener Port 1521 mit hinzufügen
Während der Installation, besonders bei einem Real Application Cluster, sollte der Virenscanner am besten deinstalliert sein!
Läuft das System kann der Virenscanner wieder installiert werden, sollte aber nicht permanent das Filesystem mit den Logs und Daten Dateien scannen!
Zeitzone einstellen (Control Panel/time/date and time)
siehe NTP Service MS Windows 2008 / 2012 auf einen eigenen NTP Server konfigurieren
Auf letzte Updates prüfen und diese einspielen. (Control Panel\Updates)
Software herunterladen und zum Beispiel unter d:\tools installieren.
CVU Tool unter https://www.oracle.com/database/technologies/cvu-downloads.html herunterladen.
Bzw. über Support unter „Patch 30839369: Standalone CVU version 19.10 January 2021“7
cd C:\oracle\products\cvu\bin\ .\cluvfy.bat # nützlich für eine Single Installation .\cluvfy.bat comp sys -p database .\cluvfy.bat comp admprv -o db_inst
aufrufen
Abschließen die Maschine herunterfahren, Offline Snapshot ziehen (als Basis für weitere Maschinen) und neu starten.
Generelle Ablauf:
Mehr zu einer 19c Installation siehe auch ⇒ https://www.pipperr.de/dokuwiki/doku.php?id=dba:upgrade_18c_windows_2016_to_19c
Es sollten noch mindestens 7 GB Platz für die Software Installation zur Verfügung stehen.
Ein 4k Display wird nicht unterstützt, hier hilft dann nur die Windows Lupe zu verwenden, oder versuchen die DPI Eigenschaften unter „Compatible“ anzupassen.
Seit der 18c wird das Oracle Home der Datenbank Software komplett kopiert als ZIP File mitgeliefert und die Software wird in das gewünschten Verzeichnis einfach ausgepackt.
Das Setup Programm konfiguriert dann dieses ORACLE_HOME Verzeichnis.
Ablauf:
-- (3,105,763,999 bytes) (sha256sum - 64d92018207829833bd4d00f1a7fb40c531c8a4a68ded9e430a5d6fbaedaca95) Get-FileHash .\WINDOWS.X64_180000_db_home\ -Algorithm SHA256 Algorithm Hash --------- ---- SHA256 64D92018207829833BD4D00F1A7FB40C531C8A4A68DED9E430A5D6FBAEDACA95
mkdir C:\oracle\products\19.3.0.0\dbhome_1 expand-archive -path 'D:\install\oracle\database\19c\WINDOWS.X64_193000_db_home.zip' -destinationpath 'C:\oracle\products\19.3.0.0.0\dbhome_1'
cd C:\oracle\products\19.3.0.0\dbhome_1
.\setup.bat
Install Wizard Ablauf:
Falls nur das eine ORACLE_HOME auf der Maschine geplant ist dieses als Umgebungsvariable mit dem Pfad C:\oracle\products\19.3.0.0\dbhome_1 hinterlegen
Nach der Software Installation wird geprüft ob ein aktueller Patch für die 19c unter Windows schon zur Verfügung steht.
Siehe dazu Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases (Doc ID 2118136.2)
Hier ein paar Link zur Oracle Release Strategie ⇒Eleanor Meritt - Oracle Open World 2017 https://static.rainfocus.com/oracle/oow17/sess/1496886539973001Z80G/PF/CON6550-NewReleaseModelForOracleDatabase-v9_1506958121732001IJYT.pptx und https://mikedietrichde.com/2017/10/24/differences-psu-bp-ru-rur/
Zuerst OPATCH und dann die jeweils passenden Patche , WINDOWS DATABASE BUNDLE PATCH und dann den OVJM einspielen mit apply.
Mit den „NetConfigrationAssistent“ (über Programme\Oracle suchen und starten ) den Listener Dienst einrichten.
über den „NetworkManager“ die listner.ora Datei unter $ORACLE_HOME\network\admin erstellen lassen.
Prüfen das die Datei auch existiert!
Der DBCA Schritt benötigt diese Information falls eine neue DB installiert konfiguriert werden soll.
Umgebungsvariable TNS_ADMIN auf $ORACLE_HOME\network\admin setzen.
DBCA verwenden um eine Datenbank anzulegen
Nach dem Anlegen darauf achten, das die Oracle Patche auch registriert sind!
Je nachdem wie gut die obigen DB Create Skripte implementiert sind, fehlt die Patch Historie in der DB, das sieht dann so aus als ob kein Patch eingespielt wäre!
sqlplus / AS sysdba ; @?/rdbms/admin/utlrp.sql
neu übersetzen
Über https://github.com/gpipperr/OraPowerShell bei Bedarf die Scripte für die Verwaltung / Backup etc. für die Datenbank herunterladen und aufsetzen.
Leider benötigt das Tool das Perl aus dem DB Home, d.h. wir können das Oracle Support Tool erst nach der DB Installation fertig aufsetzen.
Siehe auch Trace File Analyser einrichten ⇒ Oracle 12c / 18c - Die RAC Umgebung mit Oracle Trace File Analyzer (TFA) überprüfen - 19 Autonomous Health Framework (AHF)
Inzwischen (02.2021) ist das auch für Windows verfügbar.
Download über „ Autonomous Health Framework (AHF) - Including TFA and ORAchk/EXAChk (Doc ID 2550798.1)“
Falls schon mal installiert:
net stop "Oracle Trace File Analyzer"
Ein Update ist im Prinzip eine neue Installation!
Neue Installation:
mkdir C:\oracle\products\ahf\20.4.0 expand-archive -path 'C:\Users\gpipperr\Downloads\AHF-Win_v20.4.0.zip' -destinationpath 'C:\oracle\products\ahf\20.4.0'
Problem
"ExpandArchiveHelper : Can not process invalid archive entry '../oracle.ahf/orachk/.cgrep/mineocr.pm'. + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException"
Was für ein …. aus der Doku:
The native Windows unzip command does not extract correctly. If you do not see the installahf.bat after unzipping use a different unzip utility like 7Zip
.
Unbegreiflich ….. mit 7zip läßt es sich dann entpacken.
Fertig installieren:
Administrative Powershell starten:
cd C:\oracle\products\ahf\AHF-Win_v20.4.0 # get help .\installahf.bat -perlhome C:\oracle\products\19.3.0.0\dbhome_1\perl\ #start install .\install.bat -local -tfabase C:\oracle\products\ahf\20.4.0 -perlhome C:\oracle\products\19.3.0.0\dbhome_1\perl\ # testen mit: C:\oracle\products\ahf\20.4.0\oracle.ahf\tfa\bin\tfactl print status #Umgebung prüfen C:\oracle\products\ahf\20.4.0\oracle.ahf\tfa\bin\tfactl summary
Konfigurieren mit:
cd C:\oracle\products\ahf\AHF-Win_v20.4.0\oracle.ahf\ahf\bin .\tfactl.bat menu
Voraussetzung:
In unseren Fall wird die Datenbank ja auch auf einen anderen Server umgezogen, daher in der alten Datenbank die Datenbank Directories prüfen und auf den neuen Zielsystem die gleiche File Struktur anlegen und auf die Rechte für die Oracle „Run“ User achten (siehe Software Installation)!
Nur falls im Einsatz;
Auf der original Datendatenbank:
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN>backup database;
CREATE TABLE gpi.UP_DATE_19C AS SELECT sysdate AS UPDATE_DATE FROM dual;
RMAN>backup archive log all;
RMAN>backup current controlfike
Kopieren das Full Backups + Archivelog Backup + Auto Backup + Controlfile Backup in die Flash Recovery Struktur Verzeichnisstruktur auf den neuen Server wie in der alten Umgebung.
Nun die Datenbank per RMAN in der alten Umgebung wieder herstellen.
Siehe dazu SPfile wiederherstellen
sqlplus / AS sysdba startup nomount
rman CONNECT target / rman>restore controlfile FROM autobackup; # alternativ rman>restore controlfile FROM ’f:\backup\name…..’ --hier das aktuellste controlfile nach dem backup nehmen
rman>ALTER DATABASE mount;
rman>crosscheck backup; rman>DELETE expired backup;
rman>catalog START WITH ’f:\backup’;
rman>restore DATABASE;
rman>recover DATABASE;
sqlplus> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
rman>ALTER DATABASE OPEN resetlogs migrate; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure OF SQL statement command at 02/06/2021 18:25:43 ORA-04023: Object SYS.STANDARD could NOT be validated OR authorized
Fehlermeldung kann ignoriert werden!
Prüfen ob die DB auch im Upgrade Modus (<fc #800000>OPEN MIGRATE</fc>) gestartet ist:
$ENV:ORACLE_SID="VDS" sqlplus / AS sysdba -- über die OraPowerShell Skripte: @STATUS STATUS ALL Instances Inst CHECK CHECK Instance START Server Id STATUS RESTRICT Quiesce Name TIME Name ---- -------- ---------- ---------- -------- --------------- ------------------------- 1 OPEN MIG RESTRICTED NORMAL ora01 06.02.21 17:58 SDB02 RATE -- alternativ: SELECT inst_id , STATUS , logins , active_state , instance_name AS name , to_char(STARTUP_TIME, 'dd.mm.YY hh24:mi') AS startzeit , host_name FROM gv$instance ;
Falls nicht läuft im Upgrade Modus starten:
$ENV:ORACLE_SID="VDS" sqlplus / as sysdba startup upgrade exit
Zur Überwachung des Alert Logs der DB diese mit einem Tail in zweiten Fenster anzeigen lassen:
adrci adrci> show homes ADR Homes: diag\rdbms\vds\vds diag\tnslsnr\12CWIN2012ORA01\listener adrci> set home diag\rdbms\vds\vds adrci> show alert -tail -f ... Completed: ALTER DATABASE OPEN MIGRATE ...
Nach dem Klone die Datenbank auf 19 mit dem neuen (seit 12c .-)) Perl Script „perl catctl.pl catupgrd.sql“ upgraden.
Für das Loging den Ordner d:\temp\upgtrade anlegen.
Gibt es die Hardware etwas her kann mit dem Schalter „-n“ die Parallelität beim Upgrade gesetzt werden.
Auch sollte ein Log File Directory mit -l definiert werden, sonst landen die Logs alle im rdbms/Admin Verzeichnis!
Aufruf:
cd %ORACLE_HOME%\rdbms\admin #am einfachsten dann mit dem kompletten Pfad aufrufen #Optionen anzeigen lassen und prüfen ob der Aufruf auch klappt D:\oracle\product\19\dbhome_1\perl\bin\perl catctl.pl -h #Upgrade starten D:\oracle\product\19\dbhome_1\perl\bin\perl catctl.pl -n 4 -l d:\temp\upgrade catupgrd.sql ... Number of Cpus = 2 SQL Process Count = 4 ------------------------------------------------------ Phases [0-73] Serial Phase #: 0 Files: 1 Time: 241s Serial Phase #: 1 Files: 5 Time: 66s Restart Phase #: 2 Files: 1 Time: 0s ... Time: 113s Serial Phase #:70 Files: 1 Time: 816s Serial Phase #:71 Files: 1 Time: 1s Serial Phase #:72 Files: 1 Time: 0s Serial Phase #:73 Files: 1 Time: 22s Grand Total Time: 6321s LOG FILES: (catupgrd*.log) Upgrade Summary Report Located in: D:\oracle\product\19c\dbhome_1\cfgtoollogs\VDS\upgrade\upg_summary.log Grand Total Upgrade Time: [0d:1h:45m:21s]
Über das Tail im zweiten Fenster mit adrci kann nun gut der Fortschritt beobachtet werden.
Auch kann über ein PowerShell Tail das Logfile beobachtet werden:
Get-Content -Path "catupgrd0.log" -Wait .....
Allerdings werden soviel Log Daten erzeugt, das die Konsole mit dem Spool nicht mehr nachkommt und dann am Ende über 15 Minuten hinter dem Ende des Logfiles der Spool erzeugt wurde, ist also nicht in Echtzeit.
Nach dem Durchlaufen des catctl.pl die Datenbank starten und prüfen:
cd $ENV:ORACLE_HOME\rdbms\admin sqlplus / as sysdba startup @?/rdbms/admin/utlusts.sql TEXT -- Oracle Database Release 19 Post-Upgrade Status Tool 02-06-2021 18:57:2 Database Name: ORA01 Component Current Full Elapsed Time Name Status Version HH:MM:SS Oracle Server UPGRADED 19.9.0.0.0 00:08:16 JServer JAVA Virtual Machine VALID 19.9.0.0.0 00:00:55 Oracle XDK UPGRADED 19.9.0.0.0 00:00:40 Oracle Database Java Packages UPGRADED 19.9.0.0.0 00:00:06 Oracle Text UPGRADED 19.9.0.0.0 00:00:24 Oracle Workspace Manager UPGRADED 19.9.0.0.0 00:00:25 Oracle Real Application Clusters OPTION OFF 19.9.0.0.0 00:00:00 Oracle XML Database UPGRADED 19.9.0.0.0 00:00:58 Oracle Multimedia UPGRADED 19.9.0.0.0 00:01:52 Datapatch 00:02:51 Final Actions 00:03:01 Post Upgrade 00:00:23 Total Upgrade Time: 00:17:36 Database time zone version is 18. It is older than current release time zone version 32. Time zone upgrade is needed using the DBMS_DST package. Total Upgrade Time: 00:31:33
Sieht alles gut aus!
Das auf der alten Umgebung unter cfgtools das erzeugte Post Upgarde SQL auf den neuen Server nach d:\temp kopieren.
Post FixUp Script vom 12g Server aufrufen:
sqlplus / AS sysdba --Falls noch nicht gestartet startup @d:\temp\postupgrade_fixups.sql EXECUTE DBMS_STATS.gather_fixed_objects_stats; -- Recompile @?\rdbms\admin\utlrp.sql --check -- 19c @?\rdbms\admin\utlusts.sql TEXT Oracle DATABASE Release 19 Post-Upgrade STATUS Tool 02-06-2021 19:08:4 DATABASE Name: ORA01 Component CURRENT FULL Elapsed TIME Name STATUS Version HH:MM:SS Oracle Server VALID 19.9.0.0.0 00:08:16 JServer JAVA Virtual Machine VALID 19.9.0.0.0 00:00:55 Oracle XDK VALID 19.9.0.0.0 00:00:40 Oracle DATABASE Java Packages VALID 19.9.0.0.0 00:00:06 Oracle Text VALID 19.9.0.0.0 00:00:24 Oracle Workspace Manager VALID 19.9.0.0.0 00:00:25 Oracle REAL Application Clusters OPTION OFF 19.9.0.0.0 00:00:00 Oracle XML DATABASE VALID 19.9.0.0.0 00:00:58 Oracle Multimedia VALID 19.9.0.0.0 00:01:52 Datapatch 00:02:51 Final Actions 00:03:01 Post Upgrade 00:00:23 Post Compile 00:05:10 Total Upgrade TIME: 00:22:47 DATABASE TIME zone version IS 18. It IS older than CURRENT release TIME zone version 32. TIME zone upgrade IS needed USING the DBMS_DST package. --
Die Empfehlungen beachten und dann auch befolgen.
SET LINESIZE 400 SET PAGESIZE 100 COLUMN action_time FORMAT A20 COLUMN action FORMAT A10 COLUMN STATUS FORMAT A10 COLUMN description FORMAT A40 COLUMN version FORMAT A10 COLUMN bundle_series FORMAT A10 -- SELECT to_char(action_time, 'DD-MON-YYYY HH24:MI:SS') AS action_time , action , STATUS , description , target_version , patch_id FROM sys.dba_registry_sqlpatch ORDER BY action_time;
⇒ https://mikedietrichde.com/2016/11/30/dba_registry_history-vs-dba_registry_sqlpatch/
Einträge in der Datei anzeigen lassen:
SELECT * FROM v$pwfile_users;
Query muss min einen Wert anzeigen.
Prüfen ob der Temp Tablespace automatisch mit den Restore angelegt wurde.
SELECT TABLESPACE_NAME,file_name FROM dba_temp_files;
Testen was für DEFAULT_TEMP_TABLESPACE eingestellt ist:
SELECT PROPERTY_NAME , PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME LIKE '%TEMP%';
Bei Bedarf vergrößeren:
ALTER TABLESPACE TEMP ADD TEMPFILE 'R:\ORACLE\ORADATA01\GPI\TEMP01.DBF' SIZE 1GB REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
Vor dem letzten Schreiben eines Archivelogs in der Quell DB noch einen „Merker“ hinterleget.
Diesen Merker nun abfragen.
siehe auch https://docs.oracle.com/database/121/NLSPG/ch4datetime.htm#NLSPG261
SELECT * FROM V$TIMEZONE_FILE; SELECT * FROM DATABASE_PROPERTIES WHERE property_name LIKE 'DST%’
sqlplus / AS sysdba shutdown IMMEDIATE startup upgrade
EXECUTE DBMS_DST.BEGIN_UPGRADE(32)
sqlplus / AS sysdba shutdown IMMEDIATE startup
TRUNCATE TABLE sys.dst$error_table; TRUNCATE TABLE sys.dst$trigger_table;
SET serveroutput ON VAR numfail NUMBER BEGIN DBMS_DST.UPGRADE_DATABASE(:numfail, parallel => TRUE, log_errors => TRUE, log_errors_table => 'SYS.DST$ERROR_TABLE', log_triggers_table => 'SYS.DST$TRIGGER_TABLE', error_on_overlap_time => TRUE, error_on_nonexisting_time => TRUE); DBMS_OUTPUT.PUT_LINE('Failures:'|| :numfail); END; /
SELECT * FROM DBA_TSTZ_TABLES; SELECT * FROM SYS.DST$ERROR_TABLE; SELECT * FROM sys.dst$trigger_table;
VAR numfail NUMBER EXEC DBMS_DST.END_UPGRADE(:numfail); print
Mehr zu den Thema auch in diesem PDF ⇒ https://www.doag.org/formes/pubfiles/11849808/2019-DB-Christian_Gohmann-Daylight_Saving_Time_DST_entmystifiziert-Praesentation.pdf
Vermutlich wäre das schon nach der letzten Migration auf 12 in dieser DB zu erledigen gewesen:
SELECT username FROM dba_users WHERE local_temp_tablespace='SYSTEM';
⇒ 12.2 Database Upgrade Has Marked SYSTEM TABLESPACE As LOCAL_TEMP_TABLESPACE For Few Database Users (Doc ID 2385430.1) ⇒ siehe auch ⇒ https://dban00b.wordpress.com/2018/03/14/new-local-temporary-tablespace-in-12-2-defaults-to-system-for-some-users-after-upgrade/
User umziehen auf TMP mit:
SELECT 'alter user '||username||' LOCAL TEMPORARY TABLESPACE '||TEMPORARY_TABLESPACE;' from dba_users where username not in ('XS$NULL');
Falls das nicht gefixt wird, fällt das erst beim nächsten Full Import in einer andern Datenbank auf:
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01": userid=system/******** DIRECTORY=DATA_PUMP_DIR_1 DUMPFILE=EXPORT_%U.DMP LOGFILE=EXPORT.log schemas=TEST Processing object type SCHEMA_EXPORT/USER ORA-39083: Object type USER:"GPI" failed to create with error: ORA-12911: permanent tablespace cannot be temporary tablespace
Besonders für die Performance Überwachung sehr hilfreich (Nur wenn die Tuning/Diagnostic Pack Lizenz auch erworben wurde, nützen!)
Backup nach Bedarf einrichten und erstes Backup der neuen Umgebung erstellen. siehe auch Was muss alles gesichert werden
VEEAM Backup einrichten (in dieser Umgebung in Einsatz):
Den Datenbank Service auf „Automatic“ setzen und die Autostart Einstellungen kontrollieren, siehe auch Start der Oracle Instance unter Windows.
DB Block Checking Parameter einstellen?
SYS@GPI-saturn>show parameter DB_ULTRA_SAFE NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ db_ultra_safe string OFF ---------- DATA_ONLY - DB_BLOCK_CHECKING will be set to MEDIUM. - DB_LOST_WRITE_PROTECT will be set to TYPICAL. - DB_BLOCK_CHECKSUM will be set to FULL. ---------- alter system set db_ultra_safe='DATA_ONLY' scope=spfile sid='*';
⇒ https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DB_ULTRA_SAFE.html#GUID-7462165C-1868-489C-B268-15400602883F und https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DB_LOST_WRITE_PROTECT.html#GUID-52B4045A-5500-4C02-AFEB-80121659C0EE .
⇒ https://davidloinaz.wordpress.com/2016/04/11/truths-and-lies-about-db_lost_write_protect/
Bei Problemen ⇒ https://oracle-base.com/articles/misc/detect-and-correct-corruption#DB_BLOCK_CHECKING
Nur das inactive Online Redo kann ersetzt werden!!
-- jweils status prüfen mit @redo bzw mit: ttitle "Redolog Status of each group" skip 1 - LEFT "Sizes in MB" skip 2 SELECT THREAD# , GROUP# , STATUS , to_char (round ( BYTES / 1024 / 1024, 2))|| 'M' AS REDOLOG_SIZE FROM v$log ORDER BY 1, 2 / -- jeweils weiter schalten mit: ALTER system switch logfile; ALTER system archive log ALL; ALTER system checkpoint; -- droppen mit der jeweiligen Gruppen Nummer die inactiv ist ALTER DATABASE DROP logfile GROUP 1; -- neu anlegen ALTER DATABASE ADD LOGFILE GROUP 1 ('I:\Oracle\oradata\GPIDB\redo01.log','X:\Oracle\oradata\GPIDB\redo01.log') SIZE 250M; --usw... bis die gewünschte Anzahl in der gewünschten Größe alle da sind
Lokale Scripte auf der neuen Maschine, falls vorhanden, verwenden die NLS Settings des entprechenden DB Homes mit dem diese Skripte aufgerufen werden. Nach einer Neuinstallation steht diese Einstellung auf der Sprache des Betriebsystem, daher mit der alten Maschine vergleichen und bei Bedarf anpassen.
Per Default stellt die DB Installation (in der Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB19Home1\NLS_LANG. ) auf die Maschinen Sprache und Land wie „ENGLISH_UNITED.KINGDOM.WE8MSWIN1252“
Diese nun wieder auf die „richtigen“ Wert der alten Umgebung wie „GERMAN_GERMANY.WE8MSWIN1252“ setzen.
Die bestehenden Applikation anpassen, tnsnames.ora etc.
Leider kann zwar mit ADRCI der aller größte Teil der Logfile nach Alter regelmäßig gelöscht werden, die „alten“ Trace Dateien bleiben aber stehen.
Unter Linux lassen diese sich ja im Betrieb „abschneiden“, unter Windows ist das leider nicht so einfach möglich.
Dazu kann nun aber dieses Tool eingesetzt werden https://sourceforge.net/projects/logrotatewin/ bzw. ⇒ https://github.com/plecos/logrotatewin .