cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

ASE 16.0 SP02

'load database ... with listonly=create_sql' generates DDL ('create database' statement) from a dump file.

When generating 'create database' statement from a shrinked database dump, it carries unnecessary line including 'unknown device'.

*** How to reproduce the issue ***

1. Create a database having data and log devices

1> create database db1 on datadev=200 log on logdev=100
2> go

2. Set "single user" option true to enable database shrinking

1> sp_dboption db1, "single", true
2> go

3. Make database size smaller by shrinking data device

1> alter database db1 off datadev=100
2> go

4. Dump database

1> dump database db1 to "db1.dmp"
2> go

5. Generate 'create database' statement by 'load database ... with listonly=create_sql'

1> load database db1 from "db1.dmp" with listonly=create_sql
2> go
DISK INIT
name = 'datadev'
, physname = '/export/home/ase16/data/datadev.dat'
, size = '200M'
, directio = true
go
DISK INIT
name = 'logdev'
, physname = '/export/home/ase16/data/logdev.dat'
, size = '100M'
, directio = true
go
CREATE DATABASE db1
ON datadev = '100M'
, unknown_device = '100M' ----> This line should be removed.
LOG ON logdev = '100M'
go

I believe the line including ' unknown_device =' is unnecessary and should be removed.
Any plan to fix this behavior in future releases?

Regards,
Kazuo Otani

0 Likes
View Entire Topic
kazuootani
Explorer
0 Likes

Mark,

> I suggest you run the ddlgen generated create database command and then try to load your db dump file into said database ... it should generate an error telling you the the database is too small.

I tried it.
Plaese see command sequence.

1> create database db1 on datadev=200 log on logdev=100
2> go
1> alter database db1 off datadev=100
2> go
1> dump database db1 to "db1.dmp"
2> go
1> drop database db1
2> go
1> create database db1 on datadev=100 log on logdev=100 for load
2> go
1> load database db1 from "db1.dmp"
2> go
1> online database db1
2> go

load database works fine.
It recognizes actual database size even if dump file has a hole in page numbering.
So, it looks ddlgen generated create database has no problem.

After loading, sysusages shows the same result I posted above.