shihun
Дата: 31.10.2015 17:41:01
C oracle столкнулся первый раз в жизни. Задача тривиальная - подключить базу данных. Читая мануалы и штудируя форумы так и не понял, смогу ли я что-то восстановить из имеющихся у меня файлов. А имею я архив с файлами и папками(на картинке). Насколько я понимаю - это не бэкап и не дамп. Связаться с тем, кто оправил мне этот архив я пока не могу. Хотел спросить у вас, могу ли я восстановить базу данных с помощью того, что имею и как мне это сделать. Пошаговую инструкцию не прошу, просто направьте меня пожалуйста.
eev
Дата: 31.10.2015 18:19:15
shihun,
1. установить соответствующее для БД ПО
2. Ну совместно, наверно, с тем, кто выдал это, как-то так
4FAQ - клонирование базы
shihun
Дата: 31.10.2015 18:24:51
eev, а без того, кто выдал? То есть не зная изначальной структуры каталогов, название базы, sid и тд.? Или это знать не обязательно для клонирования?
ветеран этого дела
Дата: 31.10.2015 19:58:39
в каталоге bdump скорее всего есть файл alert_<sid>.log, в котором есть имя и версия базы, а также параметры для pfile со всеми каталогами.
Файл restore.cmd/bat тоже выглядит многообещающе, судя по имени там полезное содержвние должно быть.
Но это всё тлен и тщетность энивей.
shihun
Дата: 31.10.2015 21:12:05
ветеран этого дела,
Все папки, кроме oldfiles, пустые.
Содержимое restore.bat:
+ |
@echo off setlocal enabledelayedexpansion
REM ----------------------------------------------------------------------------- REM --- Параметры командного файла (без завершающих слешей) REM ----------------------------------------------------------------------------- SET ORACLE_HOME=C:\app\product\11.2.0\dbhome_1 SET DB_PATH=D:\oradata\XE SET TEMP_TABLESPACE=TEMP SET TEMP_TABLESPACEFILENAME=TEMP.DBF SET TEMP_SIZE=200 SET NEW_SID=XE SET CONNECTION_SID=XE REM ----------------------------------------------------------------------------- REM -----------------------------------------------------------------------------
set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
SET oracle_sid=%NEW_SID% set PATH=%ORACLE_HOME%;%ORACLE_HOME%\bin
ECHO ---------------------------------------------------------------------------- ECHO -------------------------------------------------------- DROP ORACLE SERVICE ECHO ---------------------------------------------------------------------------- oradim -delete -sid %NEW_SID%
if ""%NEW_SID%"" == """" goto needParams
ECHO ---------------------------------------------------------------------------- ECHO ------------------------------------------------------ CREATE ORACLE SERVICE ECHO ---------------------------------------------------------------------------- oradim.exe -new -sid %NEW_SID% -intpwd sys -startmode manual rem -pfile C:\oracle\oradata\PARUS_8530\initdemo8530.ora
md %DB_PATH%\adump md %DB_PATH%\bdump md %DB_PATH%\cdump md %DB_PATH%\udump md %DB_PATH%\oldfiles
echo a|MOVE /-Y %DB_PATH%\%TEMP_TABLESPACEFILENAME% %DB_PATH%\oldfiles echo a|MOVE /-Y %DB_PATH%\*.CTL %DB_PATH%\oldfiles
del listener.ddl del restore.ddl
echo Restarting Listener... ECHO STOP >listener.ddl ECHO SET DISPLAYMODE COMPAT >>listener.ddl ECHO START >>listener.ddl
LSNRCTL @listener.ddl
ECHO PROMPT ----------------------------------------------------------------------------; >restore.ddl ECHO PROMPT ---------------------------------------------------------- CONNECT TO SERVER; >>restore.ddl ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO connect sys/sys@%CONNECTION_SID% as sysdba; >>restore.ddl ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO PROMPT ------------------------------------------------------------- MOUNT DATABASE; >>restore.ddl ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO shutdown immediate; >>restore.ddl ECHO startup nomount; >>restore.ddl
ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO PROMPT ---------------------------------------------------- REBUILD DATABASE STRUCT; >>restore.ddl ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO CREATE CONTROLFILE SET DATABASE "%NEW_SID%" RESETLOGS NOARCHIVELOG >>restore.ddl ECHO MAXLOGFILES 16 >>restore.ddl ECHO MAXLOGMEMBERS 3 >>restore.ddl ECHO MAXDATAFILES 100 >>restore.ddl ECHO MAXINSTANCES 8 >>restore.ddl ECHO MAXLOGHISTORY 292 >>restore.ddl ECHO LOGFILE >>restore.ddl SET /a COUNT=1 FOR %%F IN (%DB_PATH%\REDO*.LOG) DO ( IF !COUNT! GTR 1 ECHO ,>>restore.ddl ECHO GROUP !COUNT! '%%F' SIZE 50M >>restore.ddl SET /a COUNT=COUNT+1 ) ECHO DATAFILE >>restore.ddl SET /a COUNT=1 FOR %%F IN (%DB_PATH%\*.DBF;%DB_PATH%\*.DAT) DO ( IF %%F NEQ %TEMP_TABLESPACEFILENAME% ( IF !COUNT! GTR 1 ECHO ,>>restore.ddl ECHO '%%F' >>restore.ddl SET /a COUNT=COUNT+1 ) ) ECHO CHARACTER SET CL8MSWIN1251; >>restore.ddl
ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO PROMPT ------------------------------------------------------ REBUILD CONTROL FILES; >>restore.ddl ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO recover database until cancel using backup controlfile; >>restore.ddl ECHO %DB_PATH%\redo01.log >>restore.ddl ECHO recover database until cancel using backup controlfile; >>restore.ddl ECHO %DB_PATH%\redo02.log >>restore.ddl ECHO recover database until cancel using backup controlfile; >>restore.ddl ECHO %DB_PATH%\redo03.log >>restore.ddl ECHO recover database until cancel using backup controlfile; >>restore.ddl ECHO CANCEL >>restore.ddl ECHO alter database open resetlogs upgrade; >>restore.ddl ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO PROMPT --------------------------------------------------- RECREATE TEMP TABLESPACE; >>restore.ddl ECHO PROMPT ----------------------------------------------------------------------------; >>restore.ddl ECHO alter tablespace %TEMP_TABLESPACE% add tempfile '%DB_PATH%\%TEMP_TABLESPACEFILENAME%' size %TEMP_SIZE%M AUTOEXTEND ON; >>restore.ddl rem ECHO @createuser.sql >>restore.ddl ECHO select status from v$instance; >>restore.ddl ECHO exit >>restore.ddl
sqlplus /NOLOG @restore.ddl
rem %ORACLE_HOME%\bin\oradim.exe -edit -sid %NEW_SID% -startmode auto %SystemRoot%\system32\sc config OracleService%NEW_SID% start= auto
goto end :needParams echo. echo Требуется настройка :end pause
|
В нем полезные строки вроде как
SET ORACLE_HOME=C:\app\product\11.2.0\dbhome_1
SET DB_PATH=D:\oradata\XE
rem -pfile C:\oracle\oradata\PARUS_8530\initdemo8530.ora
landy
Дата: 01.11.2015 08:34:19
1. Ставите Oracle XE
2. sql> create pfile from spfile;
sql> shutdown immediate;
3. Правите initXE.ora (пути до каталога на контрол файлы, куда распаковали архив) или
просто заменяете все файлы БД установки файлами из архива
4. стартуете БД
mefman
Дата: 01.11.2015 15:26:03
а что в батнике "restore"?
mefman
Дата: 01.11.2015 15:33:13
mefman |
---|
а что в батнике "restore"? |
сорри. не посмотрел
shihun
Дата: 02.11.2015 13:21:10
landy,
После проделанных операций:
SQL> startup
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 226496200 bytes
Database Buffers 301989888 bytes
Redo Buffers 5791744 bytes
Database mounted.
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF'
ORA-01202: wrong incarnation of this file - wrong creation time
landy
Дата: 02.11.2015 15:30:19
Т е Вы сделали create pfile from spfile?
переименуйте или переместите spfile из каталога OH/database
Поправьте initXE.ora чтобы указывал на правильные имена контролфайлов
Попробуйте запустить БД