"Dmitri Kuzmenko" ...
>
> Hello, Vlad!
>
> Horsun Vlad wrote:
>
> >     Такая таблица есть. Но я не понимаю как ты предлагаешь её использовать
> > (или поле в rdb$pages), для чтения не всей БД. По-идее для этого нужен 
> > аналог
> > PIP для каждого уровня бекапа.
>
> я об этом думал, когда писал тот пост в блоге.
> Пока ситуация еще хуже. дамп nbackup уровня 0 - это не база.

    Кто сказал ?

> и
> а) с ним нельзя работать, как с readonly db в IB 2007
> б) на него нельзя накатить инкремент.

    Вот тебе живой пример :

1. создаём БД с данными

D:\FB2\bin>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'c:\temp\nbakup.fdb';
SQL> create table t (id int);
SQL> insert into t
CON> select 1 from rdb$relations;
SQL> select count(*) from t;

       COUNT
============
          33

SQL> commit;
SQL> exit;


2. бекап уровня 0

D:\FB2\bin>nbackup -B 0 c:\temp\nbakup.fdb c:\temp\nbakup.nbk


3. "превращение" его в БД :

D:\FB2\bin>nbackup -F c:\temp\nbakup.nbk


4. убедимся, что это БД

D:\FB2\bin>isql c:\temp\nbakup.nbk
Database:  c:\temp\nbakup.nbk
SQL> select count(*) from t;

       COUNT
============
          33

SQL> exit;


5. Добавим данных в оригинальную БД

D:\FB2\bin>isql c:\temp\nbakup.fdb
Database:  c:\temp\nbakup.fdb
SQL> insert into t
CON> select 2 from rdb$relations;
SQL> select count(*) from t;

       COUNT
============
          67

SQL> commit;
SQL> exit;


6. бекап уровня 1

D:\FB2\bin>nbackup -B 1 c:\temp\nbakup.fdb c:\temp\nbakup.nb1



7. накатываем инкремент

D:\FB2\bin>nbackup -R c:\temp\nbakup2.fdb c:\temp\nbakup.nbk c:\temp\nbakup.nb1



8. Проверяем

D:\FB2\bin>isql c:\temp\nbakup2.fdb
Database:  c:\temp\nbakup2.fdb
SQL> select count(*) from t;

       COUNT
============
          67

SQL> exit;




> будете обсуждать - могу подкинуть мыслей на эту тему.

    Давай

> Хотя, если честно, я не знаю, о чем думал Самофатов,
> когда делал все это. Можно было приложить немного
> больше усилий, и сделать все по человечески.

    Спроси его сам  ;)

--
Хорсун Влад


Ответить