There is a table that match cms_pages and stores (cms_page_store), to find any relation error you can make a Left Join to determine if some page isn't assigned to any store:
SELECT cp.page_id, cp.identifier, cps.store_id FROM cms_page AS cp
LEFT JOIN cms_page_store as cps on cps.page_id = cp.page_id
If you see some page without store like here:
Just add a new record to cms_page_store for that/those page/s. with value = 0 (admin)
The relation between blocks and store view is kept in the table cms_block_store and for pages in cms_page_store.
These tables contain 2 column. One is the store_id and the other is the page or block id, depending on the table.
You can simply insert rows in these tables.
One row for each page and block and set the store id to 0.
This will make all pages and blocks available in all the stores.
You can run these queries on your db:
For blocks
INSERT INTO cms_block_store
SELECT block_id, 0 FROM cms_block;
and for pages
INSERT INTO cms_page_store
SELECT page_id, 0 FROM cms_page;
Best Answer
You can use MSP/CmsImportExport.
However the db tables involved are:
cms_block
cms_block_store
cms_page
cms_page_store